41 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			41 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | "use strict"; | ||
|  | Object.defineProperty(exports, "__esModule", { value: true }); | ||
|  | exports.executeHaxe = void 0; | ||
|  | const child_process = require("child_process"); | ||
|  | const fs = require("fs"); | ||
|  | const path = require("path"); | ||
|  | const log = require("./log"); | ||
|  | const exec_1 = require("./exec"); | ||
|  | function executeHaxe(from, haxeDirectory, options) { | ||
|  |     return new Promise((resolve, reject) => { | ||
|  |         let exe = 'haxe'; | ||
|  |         let env = process.env; | ||
|  |         if (fs.existsSync(haxeDirectory) && fs.statSync(haxeDirectory).isDirectory()) { | ||
|  |             let localexe = path.resolve(haxeDirectory, 'haxe' + (0, exec_1.sys)()); | ||
|  |             if (!fs.existsSync(localexe)) | ||
|  |                 localexe = path.resolve(haxeDirectory, 'haxe'); | ||
|  |             if (fs.existsSync(localexe)) | ||
|  |                 exe = localexe; | ||
|  |             const stddir = path.resolve(haxeDirectory, 'std'); | ||
|  |             if (fs.existsSync(stddir) && fs.statSync(stddir).isDirectory()) { | ||
|  |                 env.HAXE_STD_PATH = stddir; | ||
|  |             } | ||
|  |         } | ||
|  |         let haxe = child_process.spawn(exe, options, { env: env, cwd: path.normalize(from) }); | ||
|  |         haxe.stdout.on('data', (data) => { | ||
|  |             log.info(data.toString()); | ||
|  |         }); | ||
|  |         haxe.stderr.on('data', (data) => { | ||
|  |             log.error(data.toString()); | ||
|  |         }); | ||
|  |         haxe.on('close', (code) => { | ||
|  |             if (code === 0) { | ||
|  |                 resolve(); | ||
|  |             } | ||
|  |             else | ||
|  |                 reject('Haxe compiler error.'); | ||
|  |         }); | ||
|  |     }); | ||
|  | } | ||
|  | exports.executeHaxe = executeHaxe; | ||
|  | //# sourceMappingURL=Haxe.js.map
 |