summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build.properties1
-rw-r--r--build.xml29
-rw-r--r--libbuild/GitRevTask/GitRevTask.java55
3 files changed, 36 insertions, 49 deletions
diff --git a/build.properties b/build.properties
index 9372ea065..12986b97b 100644
--- a/build.properties
+++ b/build.properties
@@ -7,7 +7,6 @@ releaseVersion=1.01
stdReleaseFile=yacy_v${releaseVersion}_${DSTAMP}_${releaseNr}.tar.gz
sourceReleaseFile=yacy_src_v${releaseVersion}_${DSTAMP}_${releaseNr}.tar.gz
releaseFileParentDir=yacy
-releaseNr=$Revision: 9000 $
privateKeyFile=private.key
# defining some file/directory access rights
diff --git a/build.xml b/build.xml
index 207f49ddc..8476c853a 100644
--- a/build.xml
+++ b/build.xml
@@ -58,6 +58,9 @@
<property name="release_mac" location="${release}/MAC"/>
<property name="git" location=".git"/>
<property name="defaults" location="defaults"/>
+
+ <!-- pseudo default releaseNr as fallback -->
+ <property name="releaseNr" value="9000" />
<!-- defining all needed directory names for packing search widget-->
<property name="jquery" location="htroot/jquery/"/>
@@ -95,33 +98,13 @@
<pathelement location="${libbuild}/org.eclipse.jgit-1.1.0.201109151100-r.jar" />
</classpath>
</taskdef>
- <gitRev repoPath="${yacyroot}" property="baseRevisionNr" />
-
- <!-- replacing the old with the new revision number -->
- <copy file="build.properties" tofile="build.properties.new">
- <filterchain>
- <tokenfilter>
- <replaceregex pattern="^releaseNr=(.*)"
- replace="releaseNr=$Revision: ${baseRevisionNr} $" />
- </tokenfilter>
- </filterchain>
- </copy>
- <delete file="build.properties"/>
- <move file="build.properties.new" tofile="build.properties"/>
+ <gitRev repoPath="${yacyroot}" revprop="releaseNr" dateprop="DSTAMP" />
</target>
<!-- reading the build properties from file -->
- <!-- <target name="readBuildProperties" depends="determineGitRevision"> -->
- <target name="readBuildProperties">
+ <target name="readBuildProperties" depends="determineGitRevision">
<!-- loading some property values from file -->
- <loadproperties srcFile="build.properties">
- <filterchain>
- <tokenfilter>
- <replaceregex pattern="^releaseNr=\$Revision:\s(.*)\s\$"
- replace="releaseNr=\1"/>
- </tokenfilter>
- </filterchain>
- </loadproperties>
+ <loadproperties srcFile="build.properties" />
</target>
<!-- initializing all needed variables -->
diff --git a/libbuild/GitRevTask/GitRevTask.java b/libbuild/GitRevTask/GitRevTask.java
index 3d9302d98..c12d9b80b 100644
--- a/libbuild/GitRevTask/GitRevTask.java
+++ b/libbuild/GitRevTask/GitRevTask.java
@@ -1,8 +1,7 @@
import java.io.File;
import java.io.IOException;
+import java.text.SimpleDateFormat;
import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
@@ -19,36 +18,48 @@ import org.eclipse.jgit.storage.file.FileRepositoryBuilder;
public class GitRevTask extends org.apache.tools.ant.Task {
private String repoPath;
- private String property;
+ private String revprop;
+ private String dateprop;
public void setRepoPath(final String repoPath) {
this.repoPath = repoPath;
}
- public void setProperty(String property) {
- this.property = property;
+ public void setRevprop(String revprop) {
+ this.revprop = revprop;
+ }
+
+ public void setDateprop(String dateprop) {
+ this.dateprop = dateprop;
}
public void execute() {
- if (this.property==null || this.property.length() == 0) {
- log("svn entries file name property was not set properly",Project.MSG_ERR);
+ if (this.revprop==null || this.revprop.length() == 0) {
+ log("git entries file name revprop was not set properly",Project.MSG_ERR);
+ return;
+ }
+ if (this.dateprop==null || this.dateprop.length() == 0) {
+ log("git entries file name dateprop was not set properly",Project.MSG_ERR);
return;
}
String revision = null;
String lastTag = null;
+ String commitDate = null;
try {
final File src = new File(repoPath);
final Repository repo = new FileRepositoryBuilder().readEnvironment()
.findGitDir(src).build();
final ObjectId head = repo.resolve("HEAD");
- final String gitrev = head.getName().substring(0, 8);
final Git git = new Git(repo);
final List<RevTag> tags = git.tagList().call();
final RevWalk walk = new RevWalk(repo);
- walk.markStart(walk.parseCommit(head));
+ final RevCommit headCommit = walk.parseCommit(head);
+ final SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
+ commitDate = df.format(headCommit.getAuthorIdent().getWhen());
+ walk.markStart(headCommit);
int distance = 0;
for (final RevCommit commit : walk) {
for (final RevTag tag : tags) {
@@ -57,39 +68,33 @@ public class GitRevTask extends org.apache.tools.ant.Task {
break;
}
}
- if (lastTag == null) lastTag = findRev(commit.getFullMessage());
- if (lastTag != null || distance++ > 99) break;
+ if (lastTag != null || distance++ > 999) break;
}
walk.dispose();
if (lastTag == null) {
- revision = "dev" + "-" + gitrev;
+ revision = "0000";
} else {
- revision = lastTag + "-" + distance + "-" + gitrev;
+ revision = Integer.toString(distance + 9000);
}
- } catch (IOException e) {
+ } catch (final IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Project theProject = getProject();
if (theProject != null) {
- theProject.setProperty(this.property, lastTag);
- log("Property '" + this.property + "' set to '" + revision + "'", Project.MSG_VERBOSE);
+ theProject.setProperty(this.revprop, revision);
+ log("Property '" + this.revprop + "' set to '" + revision + "'", Project.MSG_VERBOSE);
+ theProject.setProperty(this.dateprop, commitDate);
+ log("Property '" + this.dateprop + "' set to '" + commitDate + "'", Project.MSG_VERBOSE);
}
}
- private String findRev(final String message) {
- final Pattern pattern = Pattern.compile("trunk@(\\d{4})\\s+");
- final Matcher matcher = pattern.matcher(message);
- if (matcher.find()) {
- return matcher.group(1);
- }
- return null;
- }
-
public static void main(String[] args) {
GitRevTask gitRevTask = new GitRevTask();
gitRevTask.setRepoPath("/home/sgaebel/git/yacy.rc1");
+ gitRevTask.setRevprop("baseRevisionNr");
+ gitRevTask.setDateprop("DSTAMP");
gitRevTask.execute();
}