1 | const path = require('path');
|
2 | const spawn = require('./spawn');
|
3 | const logger = require('./logger');
|
4 |
|
5 | module.exports = async (cmd, args = [], location) => {
|
6 | const relPath = path.relative(process.cwd(), location);
|
7 |
|
8 | try {
|
9 | const logs = await spawn(cmd, args, { cwd: location });
|
10 |
|
11 | logger.success(`Task succeeded in ${relPath}`);
|
12 |
|
13 | logs.forEach(log => logger.debug(log));
|
14 |
|
15 | logger.debug('\n');
|
16 | } catch (error) {
|
17 | logger.error(`Task failed in ${relPath}`);
|
18 |
|
19 | if (Array.isArray(error.logs)) {
|
20 | error.logs.forEach(log => logger.debug(log));
|
21 | }
|
22 |
|
23 | logger.debug('\n');
|
24 |
|
25 | return Promise.reject(error);
|
26 | }
|
27 | };
|