1 | #! /usr/bin/env node
|
2 |
|
3 | const program = require('commander');
|
4 | const exec = require('child_process').exec;
|
5 | const execSync = require('child_process').execSync;
|
6 | const config = require('../config');
|
7 | const log = require('../lib/log').log;
|
8 | const logSuccess = require('../lib/log').logSuccess;
|
9 | const ora = require('ora');
|
10 |
|
11 | program
|
12 | .option('--cnpm', '使用cnpm来代替npm')
|
13 | .option('--yarn', '使用yarn来代替npm')
|
14 | .option('--npm', '使用npm来代替设置的工具')
|
15 | .parse(process.argv);
|
16 |
|
17 | const execParallel = (commandArr) => {
|
18 | const spinner = new ora('正在升级i-tofu...').start();
|
19 | log();
|
20 | execSync(commandArr[0]);
|
21 | logSuccess('升级i-tofu成功');
|
22 |
|
23 | spinner.text = '正在升级tofu-cli...';
|
24 | let child = exec(commandArr[1], (error, stdout, stderr) => {
|
25 | if (error) {
|
26 | throw error;
|
27 | return;
|
28 | } else {
|
29 | log();
|
30 | logSuccess('升级tofu-cli成功');
|
31 | spinner.stop();
|
32 | }
|
33 | });
|
34 | }
|
35 |
|
36 | if (program.cnpm) {
|
37 | execParallel(['cnpm install i-tofu@latest', 'cnpm install -g tofu-cli@latest']);
|
38 | } else if (program.yarn) {
|
39 | execParallel(['yarn add i-tofu@latest', 'yarn global add tofu-cli@latest']);
|
40 | } else if (program.npm) {
|
41 | execParallel(['npm install i-tofu@latest', 'npm install -g tofu-cli@latest']);
|
42 | } else {
|
43 | execParallel([config.tool + ' install i-tofu@latest', config.tool + ' install -g tofu-cli@latest']);
|
44 | }
|