UNPKG

1.08 kBJavaScriptView Raw
1const { execSync } = require('child_process');
2const glob = require('glob');
3const destFromSrc = require('./utils/destFromSrc');
4const { logger: parentLogger } = require('./logger');
5const Task = require('./cli-spinner');
6
7const logger = parentLogger.child('clean', 'clean');
8
9module.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};