Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6e620813 authored by Joe Steele's avatar Joe Steele
Browse files

More robust parsing of changelog in build.xml

parent 57c998be
Loading
Loading
Loading
Loading
+24 −3
Original line number Diff line number Diff line
@@ -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}" />