reactors-cli
Version:
Command line utility for reactors
36 lines (28 loc) • 964 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exec;
var _child_process = require('child_process');
function _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); }
function exec(cmd) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
return new Promise(function (resolve, reject) {
var _cmd$split = cmd.split(/\s+/),
_cmd$split2 = _toArray(_cmd$split),
entry = _cmd$split2[0],
bits = _cmd$split2.slice(1);
var ps = (0, _child_process.spawn)(entry, bits, options);
ps.on('error', reject).on('exit', function (status) {
process.stdin.unpipe(ps.stdin);
process.stdin.end();
if (status === 0) {
return resolve(ps);
}
reject(new Error('Got status ' + status));
});
ps.stdout.pipe(process.stdout);
ps.stderr.pipe(process.stderr);
process.stdin.pipe(ps.stdin);
});
}