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,
							 | 
						||
| 
								 | 
							
								}
							 |