UNPKG

1.08 kBPlain TextView Raw
1#!/usr/bin/env node
2const path = require('path')
3const spawn = require('cross-spawn')
4const pkg = require('../package.json')
5
6const defaultCommand = 'dev'
7const commands = new Set([
8 'init',
9 'build',
10 'start',
11 defaultCommand
12])
13
14let cmd = process.argv[2]
15let args
16
17if (new Set(['--version', '-v']).has(cmd)) {
18 console.log('backpack v' + pkg.version)
19 process.exit(0)
20}
21
22if (new Set(['--help', '-h']).has(cmd)) {
23 console.log(`
24 Usage
25 $ backpack <command>
26 Available commands
27 ${Array.from(commands).join(', ')}
28 For more information run a command with the --help flag
29 $ backpack --help
30 `)
31 process.exit(0)
32}
33
34if (commands.has(cmd)) {
35 args = process.argv.slice(3)
36} else {
37 cmd = defaultCommand
38 args = process.argv.slice(2)
39}
40
41const bin = path.resolve(path.join(__dirname, cmd))
42
43const startProcess = () => {
44 const proc = spawn(bin, args, { stdio: 'inherit'})
45 proc.on('close', (code) => process.exit(code))
46 proc.on('error', (err) => {
47 console.error(err)
48 process.exit(1)
49 })
50 return proc
51}
52
53const proc = startProcess()