Files
tankz/tasks/exec.js

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,
});
});
};