1 | const { execSync } = require('child_process');
|
2 | const glob = require('glob');
|
3 | const destFromSrc = require('./utils/destFromSrc');
|
4 | const { logger: parentLogger } = require('./logger');
|
5 | const Task = require('./cli-spinner');
|
6 |
|
7 | const logger = parentLogger.child('clean', 'clean');
|
8 |
|
9 | module.exports = function clean(envs) {
|
10 | const task = new Task('clean');
|
11 | const startTime = logger.infoTime('starting');
|
12 |
|
13 | if (!envs) {
|
14 | execSync('rm -Rf lib-* test/node6');
|
15 | task.succeed();
|
16 | logger.infoSuccessTimeEnd(startTime, 'done.');
|
17 | return;
|
18 | }
|
19 |
|
20 | const diff = glob.sync('lib*').filter(path => !envs.includes(path.substr('lib-'.length)));
|
21 | if (diff.length) {
|
22 | const log = 'removing: ' + diff.join(',');
|
23 | const subtask = task.subtask(log);
|
24 | logger.warn(log);
|
25 | if (diff.some(diff => diff.startsWith('src'))) {
|
26 | throw new Error('Cannot contains src');
|
27 | }
|
28 |
|
29 | execSync('rm -Rf ' + diff.join(' '));
|
30 | subtask.done();
|
31 | }
|
32 |
|
33 | task.succeed();
|
34 | logger.infoSuccessTimeEnd(startTime, 'done.');
|
35 | };
|