30 lines
871 B
JavaScript
Executable File
30 lines
871 B
JavaScript
Executable File
const child_process = require('child_process');
|
|
const async = require('async');
|
|
const colors = require('ansi-colors');
|
|
const log = require('fancy-log');
|
|
|
|
const TAG = colors.green('[exec]');
|
|
|
|
const queue = async.queue((task, done) => {
|
|
//log(TAG, colors.magenta(task.command));
|
|
//process.chdir(task.dir);
|
|
child_process.exec(task.command, {cwd: task.dir, maxBuffer: 1024 * 5000}, (err, stdout, stderr) => {
|
|
if (err) {
|
|
task.failure(stderr || stdout || err);
|
|
} else {
|
|
task.success({stdout: stdout, stderr: stderr});
|
|
}
|
|
done();
|
|
});
|
|
});
|
|
|
|
module.exports = (dir, command) => {
|
|
return new Promise((success, failure) => {
|
|
queue.push({
|
|
dir: dir,
|
|
command: command,
|
|
success: success,
|
|
failure: failure,
|
|
});
|
|
});
|
|
}; |