1 | #!/usr/bin/env node
|
2 | const cac = require('cac')
|
3 | const pkg = require('../package')
|
4 |
|
5 | const cli = cac('sao')
|
6 |
|
7 | cli
|
8 | .command('<generator> [outDir]', 'Run a generator')
|
9 | .action((generator, outDir, flags) => {
|
10 | const options = Object.assign(
|
11 | {
|
12 | generator,
|
13 | outDir: outDir || '.',
|
14 | updateCheck: true
|
15 | },
|
16 | flags
|
17 | )
|
18 |
|
19 | return require('../')(options)
|
20 | .run()
|
21 | .catch(err => {
|
22 | require('..').handleError(err)
|
23 | })
|
24 | })
|
25 | .option(
|
26 | '--npm-client <client>',
|
27 | `Use a specific npm client ('yarn' | 'npm' | 'pnpm')`
|
28 | )
|
29 | .option('-u, --update', 'Update cached generator')
|
30 | .option('-c, --clone', 'Clone repository instead of archive download')
|
31 | .option('-y, --yes', 'Use the default options')
|
32 | .option('--registry <registry>', 'Use a custom registry for package manager')
|
33 | .option('--debug', 'Show debug logs')
|
34 |
|
35 | cli
|
36 | .command('set-alias <name> <value>', 'Set an alias for a generator path')
|
37 | .action((name, value) => {
|
38 | const store = require('../lib/store')
|
39 | const { escapeDots } = require('../lib/utils/common')
|
40 | const logger = require('../lib/logger')
|
41 |
|
42 | store.set(`alias.${escapeDots(name)}`, value)
|
43 | logger.success(`Added alias '${name}'`)
|
44 | })
|
45 |
|
46 | cli
|
47 | .command('get-alias <name>', 'Get the generator for an alias')
|
48 | .action(name => {
|
49 | const store = require('../lib/store')
|
50 | const { escapeDots } = require('../lib/utils/common')
|
51 |
|
52 | console.log(store.get(`alias.${escapeDots(name)}`))
|
53 | })
|
54 |
|
55 | cli.version(pkg.version)
|
56 | cli.help()
|
57 |
|
58 | cli.parse()
|