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 "";
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 |