Add SVN auto-build number support

This commit is contained in:
Joshua Granick
2016-11-14 12:01:01 -08:00
parent 648a9c51cf
commit f0c6b4dcf3

View File

@@ -1070,37 +1070,17 @@ class CommandLineTools {
if (buildNumber == null || StringTools.startsWith (buildNumber, "git")) {
var cache = LogHelper.mute;
LogHelper.mute = true;
buildNumber = getBuildNumber_GIT (project, increment);
var output = ProcessHelper.runProcess ("", "git", [ "rev-list", "HEAD", "--count" ], true, true, true);
}
LogHelper.mute = cache;
if (buildNumber == null || StringTools.startsWith (buildNumber, "svn")) {
if (output != null) {
buildNumber = getBuildNumber_SVN (project, increment);
var value = Std.parseInt (output);
}
if (value != null) {
if (buildNumber != null && buildNumber.indexOf ("+") > -1) {
var modifier = Std.parseInt (buildNumber.substr (buildNumber.indexOf ("+") + 1));
if (modifier != null) {
value += modifier;
}
}
project.meta.buildNumber = Std.string (value);
return;
}
}
if (buildNumber == null) {
var versionFile = PathHelper.combine (project.app.path, ".build");
var version = 1;
@@ -1148,6 +1128,93 @@ class CommandLineTools {
}
private function getBuildNumber_GIT (project:HXProject, increment:Bool = true):String {
var cache = LogHelper.mute;
LogHelper.mute = true;
var output = ProcessHelper.runProcess ("", "git", [ "rev-list", "HEAD", "--count" ], true, true, true);
LogHelper.mute = cache;
if (output != null) {
var value = Std.parseInt (output);
if (value != null) {
var buildNumber = project.meta.buildNumber;
if (buildNumber != null && buildNumber.indexOf ("+") > -1) {
var modifier = Std.parseInt (buildNumber.substr (buildNumber.indexOf ("+") + 1));
if (modifier != null) {
value += modifier;
}
}
return project.meta.buildNumber = Std.string (value);
}
}
return null;
}
private function getBuildNumber_SVN (project:HXProject, increment:Bool = true):String {
var cache = LogHelper.mute;
LogHelper.mute = true;
var output = ProcessHelper.runProcess ("", "svn", [ "info" ], true, true, true);
LogHelper.mute = cache;
if (output != null) {
var searchString = "Revision: ";
var index = output.indexOf (searchString);
if (index > -1) {
var value = Std.parseInt (output.substring (index + searchString.length, output.indexOf ("\n", index)));
if (value != null) {
var buildNumber = project.meta.buildNumber;
if (buildNumber != null && buildNumber.indexOf ("+") > -1) {
var modifier = Std.parseInt (buildNumber.substr (buildNumber.indexOf ("+") + 1));
if (modifier != null) {
value += modifier;
}
}
return project.meta.buildNumber = Std.string (value);
}
}
}
return null;
}
public static function getLimeConfig ():HXProject {
var environment = Sys.environment ();