UNPKG

2.38 kBJavaScriptView Raw
1#!/usr/bin/env node
2
3const proc = require('process');
4const pkg = require('./package.json');
5const charlike = require('./index');
6
7(async () => {
8 const argv = await charlike.cli(showHelp, proc.argv.slice(2), { pkg });
9
10 /* eslint-disable promise/always-return */
11 charlike(argv)
12 .then((result = {}) => {
13 console.log('Project is generated at', result.dest);
14 })
15 .catch((err) => {
16 console.error('Oooh! Some error occured.');
17 console.error(argv.verbose ? err.stack : err.message);
18 proc.exit(1);
19 });
20})();
21
22function showHelp(exitCode = 0) {
23 const log = exitCode === 0 ? console.log : console.error;
24
25 log(` charlike v${pkg.version}
26 ${pkg.description}
27
28 Usage: charlike [name] [description] [flags]
29
30 Common Flags:
31 -h, --help Display this help.
32 -v, --version Display current version.
33
34 Flags:
35 -n, --name Project's name.
36 -d, --desc Project description, short for "--project.description".
37 -o, --owner Usually your GitHub username or organization.
38 -t, --templates Source templates directory.
39 --engine Engine to be used in the template files.
40 --locals Locals for the template files. Support dot notation.
41 --locals.author.name Project's author name.
42 --locals.author.email Project's author email. And so on.
43 --project Project metadata like name, description
44 --project.name Project name.
45 --project.description Project description.
46 --cwd Folder to be used as current working dir.
47 --ly Shortcut for --locals.license.year (license start year).
48 --ln Set --locals.license.name.
49
50 Examples:
51 charlike my-new-project --ly 2018 --ln MIT -o myOrg
52 charlike --project.name foobar --locals.author 'John Snow'
53 charlike foobar --locals.author.name 'John Snow'
54 charlike foobar --locals.license 'Apache-2.0' --locals.foo bar
55 charlike foobar 'This is description'
56 charlike foobar --project.description 'Some description here'
57 charlike foobar --desc 'Some description here'
58 charlike foobar 'Awesome description' --owner tunnckoCoreLabs
59 charlike --project.name qux --desc 'Yeah descr' --owner tunnckoCore
60 `);
61
62 proc.exit(exitCode);
63}