forked from LeenkxTeam/LNXSDK
		
	
		
			
				
	
	
		
			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,
 | |
| }
 |