Comparing version 0.0.0 to 0.1.0
83
index.js
var child_process = require('child_process'); | ||
exports.exec = function(args, options, callback) { | ||
function exec(args, options, callback) { | ||
var err = '', | ||
out = '', | ||
proc; | ||
args = args.split(/\s+/g); | ||
var cmd = args.shift(); | ||
if (exec.quiet) { | ||
proc = child_process.spawn(cmd, args); | ||
proc.stdout.on('data', function(data) { | ||
out += data; | ||
}); | ||
proc.stderr.on('data', function(data) { | ||
err += data; | ||
}); | ||
} else { | ||
process.stdin.resume(); | ||
proc = child_process.spawn(cmd, args, {stdio: [process.stdin, process.stdout, process.stderr]}); | ||
process.stdout.on('data', function(data) { | ||
out += data; | ||
}); | ||
process.stderr.on('data', function(data) { | ||
err += data; | ||
}); | ||
} | ||
proc.on('exit', function(code) { | ||
callback(err, out, code); | ||
}); | ||
} | ||
exec.quiet = false; | ||
function wrapper(cmds, options, callback) { | ||
var complete = 0; | ||
function iterate() { | ||
exec(cmds[complete], options, callback); | ||
complete++; | ||
if (complete === cmds.length) { | ||
return; | ||
} else { | ||
iterate(); | ||
} | ||
} | ||
if (options == null) { | ||
options = {}; | ||
} | ||
if (callback == null) { | ||
callback = function() {}; | ||
} | ||
if (typeof options === 'function') { | ||
@@ -15,22 +69,9 @@ options = {} | ||
args = args.split(/\s+/g); | ||
cmd = args.shift(); | ||
if (Array.isArray(cmds)) { | ||
iterate(); | ||
} else { | ||
exec(cmds, options, callback); | ||
} | ||
} | ||
var proc = child_process.spawn(cmd, args), | ||
err = '', | ||
out = ''; | ||
proc.stdout.on('data', function(data) { | ||
out += data; | ||
process.stdout.write(data); | ||
}); | ||
proc.stderr.on('data', function(data) { | ||
err += data; | ||
process.stderr.write(data); | ||
}); | ||
proc.on('exit', function(code) { | ||
callback(err, out, code); | ||
}); | ||
}; | ||
module.exports = wrapper; |
{ | ||
"name": "executive", | ||
"version": "0.0.0", | ||
"version": "0.1.0", | ||
"description": "exec for the lazy", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
1827
58