UNPKG

1.53 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('--debug', 'Show debug logs')
34
35cli
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
46cli
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
55cli.version(pkg.version)
56cli.help()
57
58cli.parse()