Files
taimed/node_modules/spawnback/index.js
2025-07-24 17:21:45 +08:00

45 lines
839 B
JavaScript

var childProcess = require( "child_process" );
module.exports = function(/* command, args, options, callback */) {
var args = [].slice.call( arguments );
var callback = args.pop();
var stdout = "";
var stderr = "";
var child = childProcess.spawn.apply( childProcess, args );
var hadError = false;
child.on( "error", function( error ) {
hadError = true;
callback( error );
});
if ( child.stdout ) {
child.stdout.on( "data", function( data ) {
stdout += data;
});
}
if ( child.stderr ) {
child.stderr.on( "data", function( data ) {
stderr += data;
});
}
child.on( "close", function( code ) {
if ( hadError ) {
return;
}
var error;
if ( code ) {
error = new Error( stderr );
error.code = code;
return callback( error );
}
callback( null, stdout, stderr );
});
return child;
};