From 52cc753abd5a1017106f8bd45b4c644dd47d6884 Mon Sep 17 00:00:00 2001 From: Matt Travi Date: Tue, 20 Aug 2019 22:38:13 -0500 Subject: [PATCH] feat(cli-messages): added some output to outline the steps --- package-lock.json | 32 ++++++++++++++++++++++---------- package.json | 1 + src/gems.js | 3 +++ src/rake.js | 3 +++ src/ruby-version.js | 5 +++++ src/scaffolder.js | 3 +++ 6 files changed, 37 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2d40859c..8d63cce0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1309,6 +1309,25 @@ "mersenne-twister": "1.1.0" } }, + "@travi/cli-messages": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@travi/cli-messages/-/cli-messages-1.0.1.tgz", + "integrity": "sha512-3f8JEWLgkk3iUC7RH2N7yb4RXsbGbXW9X/lDVVR0qS3FjvlU57zC8tPnRxDjQaEheFckOUgM9wOTcqURp5d4gg==", + "requires": { + "chalk": "^2.4.2", + "log-symbols": "3.0.0" + }, + "dependencies": { + "log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "requires": { + "chalk": "^2.4.2" + } + } + } + }, "@types/estree": { "version": "0.0.39", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", @@ -1455,7 +1474,6 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, "requires": { "color-convert": "^1.9.0" } @@ -2123,7 +2141,6 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -2521,7 +2538,6 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, "requires": { "color-name": "1.1.3" } @@ -2529,8 +2545,7 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "colors": { "version": "1.1.2", @@ -3491,8 +3506,7 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "eslint": { "version": "6.1.0", @@ -4929,8 +4943,7 @@ "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "has-symbols": { "version": "1.0.0", @@ -8852,7 +8865,6 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, "requires": { "has-flag": "^3.0.0" } diff --git a/package.json b/package.json index 3c2052e9..9e535ffa 100644 --- a/package.json +++ b/package.json @@ -67,6 +67,7 @@ "travis-lint": "^1.0.0" }, "dependencies": { + "@travi/cli-messages": "^1.0.1", "execa": "^2.0.4" } } diff --git a/src/gems.js b/src/gems.js index 39f52620..a202dee9 100644 --- a/src/gems.js +++ b/src/gems.js @@ -1,8 +1,11 @@ import {resolve} from 'path'; +import {info} from '@travi/cli-messages'; import {copyFile} from '../thirdparty-wrappers/fs'; import execa from '../thirdparty-wrappers/execa'; export default async function (projectRoot) { + info('Configuring gem dependencies'); + await copyFile(resolve(__dirname, '..', 'templates', 'Gemfile.rb'), `${projectRoot}/Gemfile`); await execa('bundle', ['install']); diff --git a/src/rake.js b/src/rake.js index 4c4da4d9..d1834848 100644 --- a/src/rake.js +++ b/src/rake.js @@ -1,7 +1,10 @@ import {resolve} from 'path'; +import {info} from '@travi/cli-messages'; import {copyFile} from '../thirdparty-wrappers/fs'; export default async function (projectRoot) { + info('Configuring Rake'); + await copyFile(resolve(__dirname, '..', 'templates', 'Rakefile.rb'), `${projectRoot}/Rakefile`); return {gems: ['rake']}; diff --git a/src/ruby-version.js b/src/ruby-version.js index 426ac1b4..1ee98569 100644 --- a/src/ruby-version.js +++ b/src/ruby-version.js @@ -1,8 +1,13 @@ import {promises} from 'fs'; +import {info} from '@travi/cli-messages'; import execa from '../thirdparty-wrappers/execa'; export default async function (projectRoot) { + info('Configuring Ruby version'); + await promises.writeFile(`${projectRoot}/.ruby-version`, '2.6.3'); + info('Defined the preferred Ruby version', {level: 'secondary'}); await execa('rbenv', ['install', '--skip-existing']); + info('Installed expected Ruby version', {level: 'secondary'}); } diff --git a/src/scaffolder.js b/src/scaffolder.js index 81468507..68c4a350 100644 --- a/src/scaffolder.js +++ b/src/scaffolder.js @@ -1,9 +1,12 @@ +import {info} from '@travi/cli-messages'; import scaffoldRubyVersion from './ruby-version'; import scaffoldRake from './rake'; import scaffoldGem from './gems'; import scaffoldDocumentation from './documentation'; export async function scaffold({projectRoot}) { + info('Initializing Ruby project'); + const [rakeResults] = await Promise.all([ scaffoldRake(projectRoot), scaffoldRubyVersion(projectRoot)