UNPKG

1.62 kBJavaScriptView Raw
1'use strict';
2
3const inquirer = require('inquirer'),
4 spawn = require('child_process').spawn,
5 T = require('../lib/tools'),
6 LoadingORA = require('../lib/loadProgress').LoadingORA,
7 cliSpinners = require('../lib/loadProgress').cliSpinners,
8 Gupack = require('../lib/config/gupack');
9
10function getSourceDir() {
11 let gupack = new Gupack(T.getConfig());
12 return gupack.sourceDir;
13}
14
15function install() {
16 runSwap(getSourceDir(), null, 'Installing npm package......', '√ Installed Done');
17}
18
19function uninstall() {
20 runSwap(getSourceDir(), null, 'Uninstalling npm package......', '√ Uninstalled Done');
21}
22
23function update() {
24 runSwap(getSourceDir(), null, 'Updating npm package......', '√ Updated Done');
25}
26
27function runSwap(cwdir, arg, startText, endText) {
28 cwdir = cwdir || process.cwd();
29
30 arg = arg || process.argv.slice(2) || [];
31 arg = arg.filter(a => {
32 return !/^-+/.test(a);
33 });
34 arg = arg.concat(
35 process.argv.slice(2).filter(a => {
36 return /^-+/.test(a);
37 })
38 );
39
40 startText = startText || '→ installing npm packages ......';
41 endText = endText || '√ installed done';
42
43 let loadPrg = new LoadingORA();
44 loadPrg.start(startText);
45
46 let cmd = spawn(T.cmdify('npm'), arg, { stdio: 'pipe', cwd: cwdir });
47 cmd.on('close', function() {
48 loadPrg.stop(endText);
49 });
50 cmd.stdout.on('data', (err, data) => {
51 loadPrg.test(data.toString());
52 });
53}
54
55module.exports = {
56 install,
57 uninstall,
58 update,
59 runSwap
60};