]> source.dussan.org Git - poi.git/commitdiff
bug 59826: ant script to apply patch.tar.gz files from bugzilla
authorJaven O'Neal <onealj@apache.org>
Fri, 8 Jul 2016 11:32:52 +0000 (11:32 +0000)
committerJaven O'Neal <onealj@apache.org>
Fri, 8 Jul 2016 11:32:52 +0000 (11:32 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1751883 13f79535-47bb-0310-9956-ffa450edef68

patch.xml

index 55808a99925aa1abe603d5c55db489ea9c8dabc8..3e2228afe15bdd0db6460c0ca9322fc1faf7bacc 100644 (file)
--- a/patch.xml
+++ b/patch.xml
        </tar>  
        <delete file="${patch.file}.tmp"/>
     </target>
+    
+    <target name="apply"
+        description="apply patch.tar.gz files generated by patchpackage">
+
+            <!--
+            extract patch.tar.gz to svn working copy
+            $ tar xvzf patch.tar.gz
+            -->
+            <echo message="extracting ${patch.file} to working copy"/>
+            <untar src="${patch.package}"
+                dest="."
+                failOnEmptyArchive="true"
+                compression="gzip">
+            </untar>
+
+            <!--
+            Apply the changes from patch.txt
+            $ svn patch patch.txt
+            -->
+            <echo message="svn patch ${patch.file}"/>
+            <fail unless="svn.found" message="You need a version of svn to create the patch"/>
+            <exec executable="svn">
+                <arg value="patch"/>
+                <arg value="${patch.file}"/>
+            </exec>
+            <delete file="${patch.file}"/>
+            
+            <!--
+            get a list of all new files in patch.tar.gz and store in tar.file.list filelist
+            $ tar -tf patch.tar.gz | grep -v patch.txt | xargs svn add
+            -->
+            <echo message="Getting ${patch.file} file list"/>
+            <delete dir="${patch.package}.tmp" quiet="false" failonerror="false" />
+            <untar src="${patch.package}"
+                dest="${patch.package}.tmp"
+                failOnEmptyArchive="true"
+                compression="gzip">
+            </untar>
+            <fileset dir="${patch.package}.tmp"
+                id="tar.file.list"
+                excludes="${patch.file}"/>
+            
+            <!-- add new files -->
+            <echo message="Adding new files to svn working copy"/>
+            <apply executable="svn"
+                relative="true">
+                <arg value="add"/>
+                <fileset refid="tar.file.list"/>
+            </apply>
+            
+            <delete dir="${patch.package}.tmp"/>
+
+        </target>
 
 </project>