Skip to content

Commit 85eedf1

Browse files
committed
Add cli options
1 parent 0c3d722 commit 85eedf1

File tree

3 files changed

+233
-56
lines changed

3 files changed

+233
-56
lines changed

cli.js

Lines changed: 58 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,65 @@
11
#!/usr/bin/env node
22

3+
/* eslint-disable no-console */
4+
const chalk = require('chalk');
5+
const envinfo = require('envinfo');
36
const { program } = require('commander');
47
const run = require('./lib/index').default;
58

9+
const packageJson = require('./package.json');
10+
11+
let packageName;
12+
613
program
14+
.version(packageJson.version)
715
.name('npx @kdcsoftware/create-nodejs')
8-
.usage('<package-name>')
9-
.arguments('<package-name>', 'Name of your package')
10-
.action(function (packageName) {
11-
// console.log(packageName);
12-
run({ packageName });
13-
});
14-
15-
program.parse(process.argv);
16+
.usage(`${chalk.green('<package-name>')}`)
17+
.arguments('<package-name>')
18+
.option('--info', 'print environment debug info')
19+
.action((name) => {
20+
packageName = name;
21+
})
22+
.parse(process.argv);
23+
24+
if (program.info) {
25+
console.log(chalk.bold('\nEnvironment Info:'));
26+
console.log(
27+
`\n current version of ${packageJson.name}: ${packageJson.version}`
28+
);
29+
console.log(` running from ${__dirname}`);
30+
return envinfo
31+
.run(
32+
{
33+
System: ['OS', 'CPU'],
34+
Binaries: ['Node', 'npm', 'Yarn'],
35+
Browsers: ['Chrome', 'Edge', 'Internet Explorer', 'Firefox', 'Safari'],
36+
npmGlobalPackages: ['@kdcsoftware/create-nodejs'],
37+
},
38+
{
39+
duplicates: true,
40+
showNotFound: true,
41+
}
42+
)
43+
.then(console.log);
44+
}
45+
46+
if (typeof packageName === 'undefined') {
47+
console.error('Please specify the project directory:');
48+
console.log(
49+
` ${chalk.cyan(program.name())} ${chalk.green('<project-directory>')}`
50+
);
51+
console.log();
52+
console.log('For example:');
53+
console.log(
54+
` ${chalk.cyan(program.name())} ${chalk.green('my-awesome-package')}`
55+
);
56+
console.log();
57+
console.log(
58+
`Run ${chalk.cyan(`${program.name()} --help`)} to see all options.`
59+
);
60+
return process.exit(1);
61+
}
62+
63+
run({ packageName });
64+
65+
return process.exit(0);

package-lock.json

Lines changed: 173 additions & 48 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@
2929
},
3030
"homepage": "https://github.com/kdcsoftware/create-boilerplate#readme",
3131
"dependencies": {
32+
"chalk": "^4.0.0",
3233
"commander": "^5.1.0",
34+
"envinfo": "^7.5.1",
3335
"execa": "^4.0.1",
3436
"fs-extra": "^9.0.0"
3537
},

0 commit comments

Comments
 (0)