<?xml version="1.0" encoding="UTF-8"?> | |
<!-- | |
Licensed to the Apache Software Foundation (ASF) under one or more | |
contributor license agreements. See the NOTICE file distributed with | |
this work for additional information regarding copyright ownership. | |
The ASF licenses this file to You under the Apache License, Version 2.0 | |
(the "License"); you may not use this file except in compliance with | |
the License. You may obtain a copy of the License at | |
http://www.apache.org/licenses/LICENSE-2.0 | |
Unless required by applicable law or agreed to in writing, software | |
distributed under the License is distributed on an "AS IS" BASIS, | |
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
See the License for the specific language governing permissions and | |
limitations under the License. | |
--> | |
<!-- | |
======================================================================= | |
Use Apache Ant to generate a patch file. | |
======================================================================= | |
--> | |
<project name="create-patch" default="patchpackage" basedir="."> | |
<property environment="env"/> | |
<property name="patch.package" value="patch.tar.gz"/> | |
<property name="patch.file" value="patch.txt"/> | |
<condition property="svn.found"> | |
<or> | |
<available file="svn" filepath="${env.PATH}"/> | |
<available file="svn.exe" filepath="${env.PATH}"/> | |
<available file="svn.exe" filepath="${env.Path}"/> | |
</or> | |
</condition> | |
<target name="createpatch"> | |
<fail unless="svn.found" message="You need a version of svn to create the patch"/> | |
<exec executable="svn" output="${patch.file}"> | |
<arg value="diff"/> | |
</exec> | |
</target> | |
<target name="newfiles"> | |
<exec executable="svn" output="${patch.file}.tmp"> | |
<arg value="status"/> | |
</exec> | |
<!-- prepare the list of files to include in patch.tar.gz --> | |
<loadfile srcfile="${patch.file}.tmp" property="tar.file.list"> | |
<filterchain> | |
<!-- capture any new files --> | |
<linecontainsregexp> | |
<regexp pattern="^(\?|A)......"/> | |
</linecontainsregexp> | |
<!-- filter out the first six characters --> | |
<tokenfilter> | |
<replaceregex pattern="^(.......)" replace=""/> | |
</tokenfilter> | |
<!--remove line breaks --> | |
<striplinebreaks/> | |
</filterchain> | |
</loadfile> | |
</target> | |
<target name="patchpackage" depends="createpatch,newfiles"> | |
<delete file="${patch.package}"/> | |
<tar includes="${tar.file.list}" | |
destfile="${patch.package}" | |
basedir="." | |
compression="gzip" > | |
</tar> | |
<delete file="${patch.file}.tmp"/> | |
</target> | |
</project> |