1 | #!/usr/bin/env node
|
2 |
|
3 | const proc = require('process');
|
4 | const pkg = require('./package.json');
|
5 | const charlike = require('./index');
|
6 |
|
7 | (async () => {
|
8 | const argv = await charlike.cli(showHelp, proc.argv.slice(2), { pkg });
|
9 |
|
10 |
|
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 |
|
22 | function 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 | }
|