UNPKG

1.43 kBPlain TextView Raw
1#! /usr/bin/env node
2
3const program = require('commander');
4const exec = require('child_process').exec;
5const execSync = require('child_process').execSync;
6const config = require('../config');
7const log = require('../lib/log').log;
8const logSuccess = require('../lib/log').logSuccess;
9const ora = require('ora');
10
11program
12 .option('--cnpm', '使用cnpm来代替npm')
13 .option('--yarn', '使用yarn来代替npm')
14 .option('--npm', '使用npm来代替设置的工具')
15 .parse(process.argv);
16
17const 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
36if (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}