52 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
		
		
			
		
	
	
			52 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
| 
								 | 
							
								import sys.io.File;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class Write
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								   public static function main()
							 | 
						||
| 
								 | 
							
								   {
							 | 
						||
| 
								 | 
							
								      var args = Sys.args();
							 | 
						||
| 
								 | 
							
								      var buildNumber = Std.parseInt(args[0]);
							 | 
						||
| 
								 | 
							
								      if (buildNumber<1 || buildNumber==null)
							 | 
						||
| 
								 | 
							
								         throw "Usage: Write buildNumber";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      var jsonFile = "haxelib.json";
							 | 
						||
| 
								 | 
							
								      var lines = File.getContent(jsonFile).split("\n");
							 | 
						||
| 
								 | 
							
								      var idx = 0;
							 | 
						||
| 
								 | 
							
								      var versionMatch = ~/(.*"version"\s*:\s*")(.*)(".*)/;
							 | 
						||
| 
								 | 
							
								      var found = false;
							 | 
						||
| 
								 | 
							
								      var newVersion = "";
							 | 
						||
| 
								 | 
							
								      while(idx<lines.length)
							 | 
						||
| 
								 | 
							
								      {
							 | 
						||
| 
								 | 
							
								         if (versionMatch.match(lines[idx]))
							 | 
						||
| 
								 | 
							
								         {
							 | 
						||
| 
								 | 
							
								            var parts = versionMatch.matched(2).split(".");
							 | 
						||
| 
								 | 
							
								            if (parts.length==3)
							 | 
						||
| 
								 | 
							
								               parts[2] = buildNumber+"";
							 | 
						||
| 
								 | 
							
								            else
							 | 
						||
| 
								 | 
							
								               parts.push(buildNumber+"");
							 | 
						||
| 
								 | 
							
								            newVersion = parts.join(".");
							 | 
						||
| 
								 | 
							
								            lines[idx]=versionMatch.matched(1) + newVersion + versionMatch.matched(3);
							 | 
						||
| 
								 | 
							
								            found = true;
							 | 
						||
| 
								 | 
							
								            break;
							 | 
						||
| 
								 | 
							
								         }
							 | 
						||
| 
								 | 
							
								         idx++;
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								      if (!found)
							 | 
						||
| 
								 | 
							
								         throw "Could not find version in " + jsonFile;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      File.saveContent(jsonFile, lines.join("\n") );
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      var writeVersionFilename = "include/HxcppVersion.h";
							 | 
						||
| 
								 | 
							
								      var define = "HXCPP_VERSION";
							 | 
						||
| 
								 | 
							
								      var lines = [
							 | 
						||
| 
								 | 
							
								         '#ifndef $define',
							 | 
						||
| 
								 | 
							
								         '#define $define "$newVersion"',
							 | 
						||
| 
								 | 
							
								         '#endif'
							 | 
						||
| 
								 | 
							
								      ];
							 | 
						||
| 
								 | 
							
								      File.saveContent( writeVersionFilename, lines.join("\n") );
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      Sys.println("hxcpp_release=" + newVersion );
							 | 
						||
| 
								 | 
							
								   }
							 | 
						||
| 
								 | 
							
								}
							 |