boats
Version:
Beautiful Open / Async Template System - Write less yaml with BOATS and Nunjucks.
36 lines (35 loc) • 1.21 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const child_process_1 = tslib_1.__importDefault(require("child_process"));
const spawn = child_process_1.default.spawn;
exports.default = (program, args = [], quiet = false) => {
return new Promise((resolve, reject) => {
if (!quiet) {
console.log(`[commandRun] ${program} ${args.join(' ')}`);
}
const command = spawn(program, args);
let outputString = '';
let outputErrorString = '';
command.stdout.on('data', function (data) {
outputString += String(data);
if (!quiet) {
console.log(String(data));
}
});
command.stderr.on('data', function (data) {
outputErrorString += String(data);
if (!quiet) {
console.error(String(data));
}
});
command.on('close', function (code) {
if (code === 0) {
resolve({ outputString, outputErrorString });
}
else {
reject({ code, outputString, outputErrorString });
}
});
});
};