1 | #! /usr/bin/env node
|
2 |
|
3 | const program = require('commander')
|
4 |
|
5 | const registerLogger = require('../lib/register-logger')
|
6 | const checkHasInited = require('../lib/check-init')
|
7 | const checkVersion = require('../lib/check-version')
|
8 | const { resolveCwd } = require('../lib/utils')
|
9 |
|
10 | main()
|
11 |
|
12 | async function main () {
|
13 | if (process.argv[2] !== 'lint') await beforeInit()
|
14 |
|
15 | program.version(require('../package').version)
|
16 | .usage('<command> [options]')
|
17 | .command('init', '创建一个基于tofu的项目')
|
18 | .command('server', '运行开发服务')
|
19 | .command('build', '打包项目')
|
20 | .command('update', '更新框架以及命令行工具至最新版本')
|
21 | .command('lint', '校验 JS 代码')
|
22 | .parse(process.argv)
|
23 |
|
24 | registerLogger('', process)
|
25 | }
|
26 |
|
27 | async function beforeInit () {
|
28 | if (process.argv[2] !== 'init') {
|
29 | checkHasInited()
|
30 |
|
31 | const packageJson = require(resolveCwd('package.json'))
|
32 | if (packageJson.dependencies && packageJson.dependencies['i-tofu'])
|
33 | await checkVersion('i-tofu')()
|
34 | }
|
35 | await checkVersion('tofu-cli')()
|
36 | }
|