Skip to content

Instantly share code, notes, and snippets.

@johnsusek
Created November 17, 2019 19:31
Show Gist options
  • Save johnsusek/8218a564be4cf27b9ab51aff07577487 to your computer and use it in GitHub Desktop.
Save johnsusek/8218a564be4cf27b9ab51aff07577487 to your computer and use it in GitHub Desktop.
let cpSpawn = require('child_process').spawn;
async function spawn(cmd, args, opts, handleStdout, handleStderr) {
return new Promise((resolve, reject) => {
let handle = cpSpawn(cmd, args, opts);
handle.stdout.setEncoding('utf8');
handle.stdout.on('data', d => handleStdout(d.toString()));
handle.stderr.setEncoding('utf8');
handle.stderr.on('data', d => handleStderr(d.toString()));
handle.on('close', (res) => {
if (res === 0) {
resolve(res);
}
else {
reject(res);
}
});
});
}
module.exports = spawn;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment