UNPKG

730 BJavaScriptView Raw
1"use strict";
2
3const cp = require('child_process');
4const once = require('../function/once');
5
6//callback(err, exit, lastline);
7module.exports = function(cmd /*, options, chain*/) {
8
9 var args = Array.from(arguments);
10 var chain = once(args.pop());
11 cmd = args.shift();
12 var options = args.shift() || {};
13
14 if(Array.isArray(options))
15 options = { args : options};
16
17 var ps = cp.spawn(cmd, options.args || [], options);
18 var _stdout = "";
19 var _stderr = "";
20
21 ps.on('error', chain);
22
23 ps.stdout.on('data', function(data) { _stdout += data; });
24 ps.stderr.on('data', function(data) { _stderr += data; });
25
26 ps.on('close', function(exit) {
27 return chain(exit, _stdout, _stderr);
28 });
29
30 return ps;
31};
32