UNPKG

852 BJavaScriptView Raw
1var nodeSpawn = require('cross-spawn')
2var Promise = require('pinkie');
3var assign = require('lodash').assign;
4
5
6module.exports = function (cmd, args, opts) {
7 return new Promise(function (resolve, reject) {
8 opts = opts || {};
9
10 if (opts.env)
11 opts.env = assign({}, process.env, opts.env);
12
13 var spawnOpts = assign({
14 stdio: 'inherit',
15 shell: true,
16 }, opts);
17
18 var childProcess = nodeSpawn(cmd, args, spawnOpts);
19
20 if (opts.wait !== void 0 && !opts.wait) {
21 resolve();
22 return;
23 }
24
25 childProcess.on('exit', function (code) {
26 if (code)
27 reject(new Error('Process ' + cmd + ' exited with code: ' + code));
28 else
29 resolve();
30 });
31 });
32};