UNPKG

1.61 kBJavaScriptView Raw
1#!/usr/bin/env node
2const cac = require('cac')
3const pkg = require('../package')
4
5const cli = cac('sao')
6
7cli
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('--answers <json>', 'Skip prompts and use provided answers directly')
34 .option('--debug', 'Show debug logs')
35
36cli
37 .command('set-alias <name> <value>', 'Set an alias for a generator path')
38 .action((name, value) => {
39 const store = require('../lib/store')
40 const { escapeDots } = require('../lib/utils/common')
41 const logger = require('../lib/logger')
42
43 store.set(`alias.${escapeDots(name)}`, value)
44 logger.success(`Added alias '${name}'`)
45 })
46
47cli
48 .command('get-alias <name>', 'Get the generator for an alias')
49 .action(name => {
50 const store = require('../lib/store')
51 const { escapeDots } = require('../lib/utils/common')
52
53 console.log(store.get(`alias.${escapeDots(name)}`))
54 })
55
56cli.version(pkg.version)
57cli.help()
58
59cli.parse()