71 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
| package kha;
 | |
| 
 | |
| import haxe.io.Path;
 | |
| import sys.FileSystem;
 | |
| 
 | |
| class HaxelibRunner {
 | |
| 	static function main() {
 | |
| 		if (Sys.systemName() != "Windows") {
 | |
| 			var tools = [
 | |
| 				Path.join([Sys.getCwd(), "Tools", "nodejs", "node"]),
 | |
| 				Path.join([Sys.getCwd(), "Tools", "kravur", "kravur"]),
 | |
| 				Path.join([Sys.getCwd(), "Tools", "oggenc", "oggenc"]),
 | |
| 				Path.join([Sys.getCwd(), "Kore", "Tools", "krafix", "krafix"]),
 | |
| 				Path.join([Sys.getCwd(), "Kore", "Tools", "kraffiti", "kraffiti"])
 | |
| 			];
 | |
| 			for (tool in tools)
 | |
| 				chmod(tool);
 | |
| 		}
 | |
| 
 | |
| 		var io = Path.join([Sys.getCwd(), "Tools", "nodejs", "node" + sysExt()]);
 | |
| 
 | |
| 		var args = Sys.args();
 | |
| 		args.unshift(Path.join([Sys.getCwd(), "Tools", "khamake", "khamake.js"]));
 | |
| 
 | |
| 		var project = Path.normalize(args.pop());
 | |
| 		args.push("--from");
 | |
| 		args.push(project);
 | |
| 		args.push("--to");
 | |
| 		args.push(Path.join([project, "build"]));
 | |
| 		args.push("--haxe");
 | |
| 		args.push(haxePath());
 | |
| 		args.push("--kha");
 | |
| 		args.push(Path.normalize(Sys.getCwd()));
 | |
| 
 | |
| 		if (Sys.systemName() == "Windows")
 | |
| 			Sys.exit(Sys.command('"' + io + '"', args));
 | |
| 		else
 | |
| 			Sys.exit(Sys.command(io, args));
 | |
| 	}
 | |
| 
 | |
| 	static function chmod(path: String): Void {
 | |
| 		Sys.command("chmod", ["a+x", path + sysExt()]);
 | |
| 	}
 | |
| 
 | |
| 	static function haxePath(): String {
 | |
| 		var path = Sys.getEnv("HAXEPATH");
 | |
| 		if (path == null) {
 | |
| 			path = "/usr/local/lib/haxe";
 | |
| 			if (!FileSystem.exists(path) || !FileSystem.isDirectory(path)) {
 | |
| 				path = "/usr/lib/haxe";
 | |
| 			}
 | |
| 		}
 | |
| 		return Path.normalize(path);
 | |
| 	}
 | |
| 
 | |
| 	static function sysExt(): String {
 | |
| 		switch (Sys.systemName()) {
 | |
| 			case "Linux":
 | |
| 				var process = new sys.io.Process("uname", ["-m"]);
 | |
| 				var value = process.stdout.readAll().toString();
 | |
| 				return "-linux" + (value.indexOf("64") != -1 ? "64" : "32");
 | |
| 			case "Windows":
 | |
| 				return ".exe";
 | |
| 			case "Mac":
 | |
| 				return "-osx";
 | |
| 			default:
 | |
| 				return "";
 | |
| 		}
 | |
| 	}
 | |
| }
 |