Files
gulp-haxetool/haxetool/exec.js
2018-04-30 20:33:18 +03:00

32 lines
1.0 KiB
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 verbose = process.argv.indexOf('--verbose') > -1;
const queue = async.queue((task, done) => {
if (verbose) 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 (verbose) log(TAG, err ? colors.red(err) : '', stdout, colors.red(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,
});
});
};