roll our own 'git rev-parse --short HEAD'
This commit is contained in:
parent
b1da05dbe0
commit
21a09f23d4
|
@ -14,6 +14,7 @@
|
|||
<property name="jni.define.name" value="SIGAR"/>
|
||||
<property name="sigar-bin" location="sigar-bin"/>
|
||||
<property name="sigar-bin-dir" location="${sigar-bin}"/>
|
||||
<property name="jni.git" location="../../.git"/>
|
||||
<property name="jni.bin" location="${sigar-bin}"/>
|
||||
<property name="jni.source.dir" location="../.."/>
|
||||
<property name="jni.src.java" value="hyperic_jni/src"/>
|
||||
|
@ -116,7 +117,7 @@
|
|||
<replace file="${version.tofile}">
|
||||
<replacefilter token="@@BUILD_DATE@@" value="${BUILD_DATE}"/>
|
||||
<replacefilter token="@@VERSION_STRING@@" value="${sigar.version}.${version.build}"/>
|
||||
<replacefilter token="@@SCM_REVISION@@" value="${sigar.scmrev}"/>
|
||||
<replacefilter token="@@SCM_REVISION@@" value="${jni.scmrev}"/>
|
||||
<replacefilter token="@@ARCHNAME@@" value="${jni.libarch}"/>
|
||||
<replacefilter token="@@ARCHLIB@@" value="${jni.libname.full}"/>
|
||||
<replacefilter token="@@BINNAME@@" value="${jni.project.archname}"/>
|
||||
|
@ -128,59 +129,12 @@
|
|||
</replace>
|
||||
</target>
|
||||
|
||||
<target name="check-svn">
|
||||
<condition property="svn.available">
|
||||
<and>
|
||||
<available file=".svn" type="dir"/>
|
||||
<available file="svn" type="file">
|
||||
<filepath>
|
||||
<pathelement path="${env.PATH}"/>
|
||||
</filepath>
|
||||
</available>
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
|
||||
<target name="svn-revision" if="svn.available">
|
||||
<exec executable="svnversion" dir="."
|
||||
outputproperty="sigar.scmrev"
|
||||
failifexecutionfails="false">
|
||||
<arg value="."/>
|
||||
</exec>
|
||||
<echo message="SIGAR svn revision #${sigar.scmrev}"/>
|
||||
</target>
|
||||
|
||||
<target name="check-git">
|
||||
<condition property="git.available">
|
||||
<and>
|
||||
<available file="../../.git" type="dir"/>
|
||||
<available file="git" type="file">
|
||||
<filepath>
|
||||
<pathelement path="${env.PATH}"/>
|
||||
</filepath>
|
||||
</available>
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
|
||||
<target name="git-revision" if="git.available">
|
||||
<exec executable="git" dir="."
|
||||
outputproperty="sigar.scmrev"
|
||||
failifexecutionfails="false">
|
||||
<arg value="rev-parse"/>
|
||||
<arg value="--short"/>
|
||||
<arg value="HEAD"/>
|
||||
</exec>
|
||||
<echo message="SIGAR git revision #${sigar.scmrev}"/>
|
||||
</target>
|
||||
|
||||
<target name="sigar-version" depends="check-svn,svn-revision,check-git,git-revision">
|
||||
<target name="sigar-version">
|
||||
<tstamp>
|
||||
<format property="BUILD_DATE" pattern="MM/dd/yyyy hh:mm aa"/>
|
||||
</tstamp>
|
||||
|
||||
<!-- in the case of release source builds -->
|
||||
<property name="sigar.scmrev" value="exported"/>
|
||||
<echo message="SIGAR git revision ${jni.scmrev}"/>
|
||||
|
||||
<antcall target="version-file">
|
||||
<param name="version.file"
|
||||
|
|
|
@ -18,8 +18,11 @@
|
|||
|
||||
package org.hyperic.jni;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileFilter;
|
||||
import java.io.FileReader;
|
||||
import java.io.Reader;
|
||||
import java.util.Arrays;
|
||||
|
||||
import org.apache.tools.ant.Task;
|
||||
|
@ -134,5 +137,50 @@ public class ArchNameTask extends Task {
|
|||
System.out.println("Using -mmacosx-version-min=" + min);
|
||||
}
|
||||
}
|
||||
getProject().setProperty("jni.scmrev", getSourceRevision());
|
||||
}
|
||||
|
||||
//XXX source rev stuff should be in another task
|
||||
private String readLine(String filename) {
|
||||
Reader reader = null;
|
||||
try {
|
||||
reader = new FileReader(filename);
|
||||
return new BufferedReader(reader).readLine();
|
||||
} catch (Exception e) {
|
||||
} finally {
|
||||
if (reader != null) {
|
||||
try { reader.close(); } catch (Exception e) {}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private String getSourceRevision() {
|
||||
final String exported = "exported";
|
||||
String sha1 = getGitSourceRevision();
|
||||
if (sha1 == null) {
|
||||
return exported;
|
||||
}
|
||||
else {
|
||||
return sha1;
|
||||
}
|
||||
}
|
||||
|
||||
//same as: git rev-parse --short HEAD
|
||||
//same as: (cd .git && cat HEAD | awk '{print $2}' | xargs cat | cut -b 1-7)
|
||||
private String getGitSourceRevision() {
|
||||
String git = getProject().getProperty("jni.git");
|
||||
if (git == null) {
|
||||
git = ".git";
|
||||
}
|
||||
if (new File(git).exists()) {
|
||||
String head = readLine(git + "/HEAD");
|
||||
|
||||
if (head != null) {
|
||||
String ref = head.substring(5).trim(); //'ref: '
|
||||
return readLine(git + "/" + ref).substring(0, 7);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue