More robust parsing of changelog in build.xml

This commit is contained in:
Joe Steele 2013-08-01 10:54:26 -04:00
parent 57c998becc
commit 6e62081390
1 changed files with 24 additions and 3 deletions

View File

@ -86,6 +86,7 @@
<property name="rclib" value="${out.dir}/K9RemoteControl.jar" />
<property name="rcdir" value="com/fsck/k9/remotecontrol/**" />
<property name="changelog-path-src" value="res/xml/changelog_master.xml" />
<condition property="android.executable" value="android.bat">
<os family="windows" />
</condition>
@ -139,9 +140,29 @@
</if.contrib>
<echo>Setting version to ${version-name}</echo>
<exec executable="perl" failonerror="true">
<arg line="-0 -ne '/\x3Crelease version=\x22${version-name}\x22/ or die qq/No changelog for ${version-name}\n/' res/xml/changelog_master.xml" />
<xpath
input="${changelog-path-src}"
expression="/changelog/release[@version='${version-name}']/@version"
output="changelog-test" />
<if.contrib>
<equals arg1="${changelog-test}" arg2="${version-name}" />
<else>
<fail>No changelog for ${version-name}.</fail>
</else>
</if.contrib>
<exec executable="git" failonerror="true" outputproperty="git-status" errorproperty="git-status-error">
<arg line="status -s ${changelog-path-src}" />
</exec>
<if.contrib>
<equals arg1="${git-status}" arg2="" />
<else>
<fail>Uncomitted changelog edits.</fail>
</else>
</if.contrib>
<replace file="AndroidManifest.xml"
token="android:versionName=&quot;${current-version-name}&quot;"
value="android:versionName=&quot;${version-name}&quot;" summary="true"
@ -184,7 +205,7 @@
<arg line="reset -q" />
</exec>
<exec executable="git" failonerror="true" outputproperty="git-ls-tree" errorproperty="git-ls-tree-error">
<arg line="ls-tree ${git-branch-ref} res/xml/changelog_master.xml" />
<arg line="ls-tree ${git-branch-ref} ${changelog-path-src}" />
</exec>
<regex property="changelog-path-dst" input="${git-branch-ref}" regexp=".*/([^/]+$)" select="changelog_\1_branch.xml" />
<regex property="git-index-info" input="${git-ls-tree}" regexp="(.*\t).*" select="\1${changelog-path-dst}" />