const gutil = require('gulp-util'); const child_process = require('child_process'); const async = require('async'); const col = gutil.colors; const Promise = require("bluebird"); const TAG = col.green('[exec]'); const queue = async.queue((task, done) => { //gutil.log(TAG, col.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, }); }); };