| <?xml version="1.0"?> |
| |
| <!-- |
| ======================================================================= |
| Use Apache Ant to generate a patch file for Apache Ant. |
| |
| Copyright (c) 2003 The Apache Software Foundation. All rights |
| reserved. |
| |
| ======================================================================= |
| --> |
| <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="cvs.found"> |
| <or> |
| <available file="cvs" filepath="${env.PATH}"/> |
| <available file="cvs.exe" filepath="${env.PATH}"/> |
| <available file="cvs.exe" filepath="${env.Path}"/> |
| </or> |
| </condition> |
| |
| <target name="createpatch"> |
| <fail unless="cvs.found" |
| message="You need a version of cvs to create the patch"/> |
| <cvs command="-q diff -u" output="${patch.file}"/> |
| </target> |
| |
| <target name="newfiles" depends="createpatch"> |
| <delete file="${patch.package}"/> |
| <cvs command="-q diff -N" output="${patch.file}.tmp"/> |
| <replace file="${patch.file}.tmp" token="? " value=""/> |
| <tstamp> |
| <format property="year" pattern="yyyy"/> |
| </tstamp> |
| <fileset dir="${basedir}" |
| includesfile="${patch.file}.tmp" |
| excludes="${patch.file}.tmp,${patch.file}" |
| id="no.copyright.set"> |
| <not> |
| <and> |
| <contains text="Copyright"/> |
| <contains text="Apache Software Foundation"/> |
| <contains text="${year}"/> |
| </and> |
| </not> |
| </fileset> |
| <pathconvert pathsep="${line.separator}" |
| setonempty="false" |
| property="no.copyright" |
| refid="no.copyright.set"/> |
| <fail if="no.copyright" |
| message="Please assign the Apache Ant Copyright (for ${year}) to these files and retry:${line.separator}${no.copyright}"/> |
| </target> |
| |
| <target name="patchpackage" depends="newfiles"> |
| <tar basedir="${basedir}" |
| tarfile="${patch.package}" |
| compression="gzip" |
| includesfile="${patch.file}.tmp" |
| excludes="${patch.file}.tmp"/> |
| <delete file="${patch.file}.tmp"/> |
| </target> |
| </project> |