appcenter-cli
Version:
Command line tool for Visual Studio App Center
54 lines (53 loc) • 1.76 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.execWithArgsAndWait = exports.execAndWait = void 0;
const child_process = require("child_process");
const interaction_1 = require("../interaction");
function execAndWait(command, onStdOut, onStdErr) {
return new Promise((resolve, reject) => {
if (!onStdOut) {
onStdOut = (text) => interaction_1.out.text(text);
}
if (!onStdErr) {
onStdErr = (text) => interaction_1.out.text(text);
}
const process = child_process.exec(command);
process.on("exit", (exitCode) => {
resolve(exitCode);
});
process.on("error", (message) => {
reject(new Error(message));
});
process.stdout.on("data", (data) => {
onStdOut(data);
});
process.stderr.on("data", (data) => {
onStdErr(data);
});
});
}
exports.execAndWait = execAndWait;
function execWithArgsAndWait(file, args, onStdOut, onStdErr) {
return new Promise((resolve, reject) => {
if (!onStdOut) {
onStdOut = (text) => interaction_1.out.text(text);
}
if (!onStdErr) {
onStdErr = (text) => interaction_1.out.text(text);
}
const process = child_process.execFile(file, args);
process.on("exit", (exitCode) => {
resolve(exitCode);
});
process.on("error", (message) => {
reject(new Error(message));
});
process.stdout.on("data", (data) => {
onStdOut(data);
});
process.stderr.on("data", (data) => {
onStdErr(data);
});
});
}
exports.execWithArgsAndWait = execWithArgsAndWait;