59 lines
1.4 KiB
JavaScript
59 lines
1.4 KiB
JavaScript
const child_process = require("child_process");
|
|
|
|
async function spawnCommand(command, args, exitOnErr) {
|
|
exitOnErr = exitOnErr === undefined ? true : exitOnErr;
|
|
|
|
const proc = child_process.spawn(command, args);
|
|
|
|
proc.stdout.on("data", function (data) {
|
|
console.log(data.toString().trim());
|
|
});
|
|
|
|
proc.stderr.on("data", function (data) {
|
|
console.error(data.toString().trim());
|
|
});
|
|
|
|
return new Promise(function(resolve, reject) {
|
|
proc.on("close", function (code) {
|
|
if (code == 0) {
|
|
console.log(`Child process exited with code ${code}`);
|
|
resolve();
|
|
} else {
|
|
console.error(`Child process failed with code ${code}`);
|
|
if (exitOnErr) {
|
|
process.exit(code);
|
|
}
|
|
reject();
|
|
}
|
|
});
|
|
});
|
|
}
|
|
|
|
function getEnvVarSafe(varname) {
|
|
const value = process.env[varname];
|
|
if (value === undefined) {
|
|
exitWithError(`Environment variable '${varname}' not set!`)
|
|
}
|
|
return value;
|
|
}
|
|
|
|
function exitWithError(message, exitCode) {
|
|
exitCode = exitCode === undefined ? 1 : exitCode;
|
|
|
|
console.error("[Error] " + message);
|
|
process.exit(exitCode);
|
|
}
|
|
|
|
async function install_deps() {
|
|
console.log("Downloading haxelib dependencies...");
|
|
await spawnCommand("haxelib", ["newrepo"]);
|
|
await spawnCommand("haxelib", ["install", "TestDeps.hxml", "--always"]);
|
|
}
|
|
|
|
module.exports = {
|
|
spawnCommand: spawnCommand,
|
|
getEnvVarSafe: getEnvVarSafe,
|
|
exitWithError: exitWithError,
|
|
install_deps: install_deps,
|
|
}
|