UNPKG

1.38 kBJavaScriptView Raw
1//--------------------------------------------------------
2//-- Install
3//--------------------------------------------------------
4'use strict';
5
6const cli = require('@absolunet/cli');
7const fss = require('@absolunet/fss');
8const { terminal } = require('@absolunet/terminal');
9const Task = require('~/classes/task');
10const paths = require('~/helpers/paths');
11
12
13const availableScopes = ['vendors'];
14
15
16const vendorInstall = () => {
17 terminal.print(`
18 Installing vendors via npm
19 `);
20
21 fss.remove(paths.directory.vendorsDependencies);
22 fss.remove(`${paths.directory.vendors}/package-lock.json`);
23
24 terminal.run(`cd ${paths.directory.vendors} && npm install --no-audit`);
25};
26
27
28
29
30
31
32class InstallTask extends Task {
33
34 constructor() {
35 super();
36 this.filename = __filename;
37 }
38
39 cli(meowCli) {
40 cli.refuseFlags(meowCli);
41
42 if (meowCli.input.length <= 3) {
43
44 // Get and validate scopes
45 let [, scopes] = meowCli.input;
46
47 if (scopes) {
48 if (availableScopes.includes(scopes)) {
49 scopes = [scopes];
50 } else {
51 cli.showTaskUsage(meowCli);
52 }
53 } else {
54 scopes = availableScopes;
55 }
56
57
58 // Run installs
59 scopes.forEach((scope) => {
60
61 switch (scope) {
62
63 case 'vendors': vendorInstall(); break;
64 default: break;
65
66 }
67 });
68
69 } else {
70 cli.showTaskUsage(meowCli);
71 }
72 }
73
74}
75
76
77module.exports = new InstallTask();