|
|
|
@ -3,17 +3,18 @@ const logger = require("./logger.js")("exec");
|
|
|
|
|
const { spawn } = require("child_process");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function exec(cmd, stdout_handler, stderr_handler, exit_handler){
|
|
|
|
|
function exec(cmd, stdout, stderr, exit_handler){
|
|
|
|
|
const [bin, ...args] = cmd.split(' ')
|
|
|
|
|
|
|
|
|
|
logger.addContext("binary", "bin");
|
|
|
|
|
logger.debug(`Spawn process '${cmd}'`);
|
|
|
|
|
let proc = spawn(bin, args);
|
|
|
|
|
|
|
|
|
|
logger.debug(`Attach stdout, stderr and exit-handler if set`);
|
|
|
|
|
stdout_handler && proc.stdout.on('data', stdout_handler);
|
|
|
|
|
stderr_handler && proc.stderr.on('data', stderr_handler);
|
|
|
|
|
exit_handler && proc.on('exit', exit_handler);
|
|
|
|
|
return {
|
|
|
|
|
"process": proc,
|
|
|
|
|
"stdout": proc.stdout,
|
|
|
|
|
"stderr": proc.stderr
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Specify exports
|
|
|
|
|