|
Ant example source code file (exec.xml)
The exec.xml source code<project name="exec-test" default="spawn" basedir="."> <target name="init"> <!-- this property can be overriden programatically in the Java test case --> <property name="timeToWait" value="10"/> <!-- this property can be overriden programatically in the Java test case --> <property name="logFile" value="${java.io.tmpdir}/spawn.log"/> <property environment="env"/> <!-- UNIX --> <available file="sh" filepath="${env.PATH}" property="sh.executable"/> <!-- CYGWIN --> <available file="sh.exe" filepath="${env.PATH}" property="sh.exe.executable"/> <condition property="test.can.run"> <or> <isset property="sh.executable"/> <isset property="sh.exe.executable"/> </or> </condition> <!-- UNIX --> <available file="wc" filepath="${env.PATH}" property="wc.executable"/> <!-- CYGWIN --> <available file="wc.exe" filepath="${env.PATH}" property="wc.exe.executable"/> <condition property="wc.can.run"> <or> <isset property="wc.executable"/> <isset property="wc.exe.executable"/> </or> </condition> <!-- UNIX --> <available file="cat" filepath="${env.PATH}" property="cat.executable"/> <!-- CYGWIN --> <available file="cat.exe" filepath="${env.PATH}" property="cat.exe.executable"/> <condition property="cat.can.run"> <or> <isset property="cat.executable"/> <isset property="cat.exe.executable"/> </or> </condition> </target> <target name="spawn" depends="init" if="test.can.run"> <exec executable="sh" spawn="true"> <arg value="spawn.sh"/> <arg value="${timeToWait}" /> <arg value="${logFile}" /> </exec> </target> <target name="no-redirect" depends="init" if="test.can.run"> <exec executable="sh"> <arg value="parrot.sh"/> <arg value="${ant.file}" /> </exec> </target> <target name="redirect1" depends="init" if="test.can.run"> <exec executable="sh" output="redirect.out"> <arg value="parrot.sh"/> <arg value="${ant.file}" /> </exec> </target> <target name="redirect2" depends="init" if="test.can.run"> <exec executable="sh" output="redirect.out" error="redirect.err"> <arg value="parrot.sh"/> <arg value="${ant.file}" /> </exec> </target> <target name="redirect3" depends="init" if="test.can.run"> <exec executable="sh" logerror="true" output="redirect.out" outputproperty="redirect.out"> <arg value="parrot.sh"/> <arg value="${ant.file}" /> </exec> </target> <target name="redirect4" depends="init" if="test.can.run"> <exec executable="sh" error="redirect.err" errorproperty="redirect.err" output="redirect.out" outputproperty="redirect.out"> <arg value="parrot.sh"/> <arg value="${ant.file}" /> </exec> </target> <target name="redirect5" depends="init" if="wc.can.run"> <exec executable="wc" inputstring="x y z" error="redirect.err" errorproperty="redirect.err" output="redirect.out" outputproperty="redirect.out"> <arg value="-w"/> </exec> </target> <target name="redirect6" depends="init" if="wc.can.run"> <echo file="redirect.in">x y z <exec executable="wc" input="redirect.in" error="redirect.err" errorproperty="redirect.err" output="redirect.out" outputproperty="redirect.out"> <arg value="-w"/> </exec> </target> <target name="redirect7" depends="init" if="wc.can.run"> <exec executable="wc" inputstring="x y z" error="redirect.err" output="redirect.out" outputproperty="redirect.out"> <arg value="-w"/> </exec> </target> <target name="redirector1" description="fail" depends="init" if="test.can.run"> <exec executable="sh"> <arg value="parrot.sh"/> <arg value="${ant.file}" /> <redirector output="redirector.out" /> <redirector output="whocares" /> </exec> </target> <target name="redirector2" depends="init" if="test.can.run"> <exec executable="sh"> <arg value="parrot.sh"/> <arg value="${ant.file}" /> <redirector output="redirector.out" /> </exec> </target> <target name="redirector3" depends="init" if="test.can.run"> <exec executable="sh"> <arg value="parrot.sh"/> <arg value="${ant.file}" /> <redirector output="redirector.out" error="redirector.err" /> </exec> </target> <target name="redirector4" depends="init" if="test.can.run"> <exec executable="sh"> <arg value="parrot.sh"/> <arg value="${ant.file}" /> <redirector output="redirector.out" logerror="true" outputproperty="redirector.out" /> </exec> </target> <target name="redirector5" depends="init" if="test.can.run"> <exec executable="sh"> <redirector error="redirector.err" errorproperty="redirector.err" output="redirector.out" outputproperty="redirector.out" /> <arg value="parrot.sh"/> <arg value="${ant.file}" /> </exec> </target> <target name="redirector6" depends="init" if="test.can.run"> <exec executable="sh"> <redirector outputproperty="redirector.out" errorproperty="redirector.err"> <outputmapper type="merge" to="redirector.out" /> <errormapper type="merge" to="redirector.err" /> </redirector> <arg value="parrot.sh" /> <arg value="${ant.file}" /> </exec> </target> <target name="redirector7" depends="init" if="test.can.run"> <exec executable="sh"> <redirector outputproperty="redirector.out" errorproperty="redirector.err"> <outputmapper type="merge" to="redirector.out" /> <errormapper type="merge" to="redirector.err" /> <errorfilterchain> <replacestring from="err" to="ERROR!!!" /> </errorfilterchain> </redirector> <arg value="parrot.sh" /> <arg value="${ant.file}" /> </exec> </target> <target name="redirector8" depends="init" if="wc.can.run"> <echo file="redirector.in">x y z <exec executable="wc"> <redirector outputproperty="redirector.out" errorproperty="redirector.err"> <inputmapper type="merge" to="redirector.in" /> <outputmapper type="merge" to="redirector.out" /> <errormapper type="merge" to="redirector.err" /> </redirector> <arg value="-w"/> </exec> </target> <target name="redirector9" depends="init" if="cat.can.run"> <echo file="redirector.in">blah before blah <exec executable="cat"> <redirector outputproperty="redirector.out" errorproperty="redirector.err"> <inputfilterchain> <replacestring from="before" to="after" /> </inputfilterchain> <inputmapper type="merge" to="redirector.in" /> <outputmapper type="merge" to="redirector.out" /> <errormapper type="merge" to="redirector.err" /> </redirector> </exec> </target> <target name="redirector10" depends="init" if="cat.can.run"> <echo file="redirector.in">blah before blah <exec executable="cat"> <redirector outputproperty="redirector.out" errorproperty="redirector.err"> <outputfilterchain> <replacestring from="before" to="after" /> </outputfilterchain> <outputmapper type="merge" to="redirector.out" /> <errormapper type="merge" to="redirector.err" /> </redirector> <arg value="redirector.in"/> </exec> </target> <target name="redirector11" depends="init" if="cat.can.run"> <exec executable="cat"> <redirector outputproperty="redirector.out" errorproperty="redirector.err" inputstring="blah before blah"> <inputfilterchain> <replacestring from="before" to="after" /> </inputfilterchain> <outputmapper type="merge" to="redirector.out" /> <errormapper type="merge" to="redirector.err" /> </redirector> </exec> </target> <target name="redirector12" depends="init" if="cat.can.run"> <echo file="redirector.in">blah before blah <exec executable="cat" output="redirector.out" error="redirector.err"> <redirector outputproperty="redirector.out" errorproperty="redirector.err"> <outputfilterchain> <replacestring from="before" to="after" /> </outputfilterchain> <outputmapper type="glob" from="nomatch" to="nomatchout" /> <errormapper type="glob" from="nomatch" to="nomatcherr" /> </redirector> <arg value="redirector.in"/> </exec> </target> <target name="redirector13" depends="init" if="test.can.run"> <exec executable="sh"> <redirector> <outputfilterchain> <replacestring from="out" to="OUTPUT???" /> </outputfilterchain> <errorfilterchain> <replacestring from="err" to="ERROR!!!" /> </errorfilterchain> </redirector> <arg value="parrot.sh" /> <arg value="${ant.file}" /> </exec> </target> <target name="redirector14" depends="init" if="cat.can.run"> <exec executable="cat"> <redirector inputstring="blah before blah"> <outputfilterchain> <replacestring from="before" to="after" /> </outputfilterchain> <outputmapper type="glob" from="nomatch" to="nomatchout" /> <errormapper type="glob" from="nomatch" to="nomatcherr" /> </redirector> </exec> </target> <target name="redirector15" depends="init" if="cat.can.run"> <exec executable="cat"> <redirector input="input/iso8859-1" output="redirector.out" inputencoding="ISO8859_1" outputencoding="UTF8" /> </exec> </target> <target name="redirector16" depends="init" if="test.can.run"> <exec executable="sh"> <redirector inputstring="exit" output="redirector16.out" error="redirector16.err" /> </exec> <condition property="16pass"> <and> <available file="redirector16.out" type="file" /> <available file="redirector16.err" type="file" /> </and> </condition> <fail unless="16pass">Files were not created. </target> <target name="redirector17" depends="init" if="test.can.run"> <exec executable="sh"> <redirector inputstring="exit" createemptyfiles="false" output="redirector17.out" error="redirector17.err" /> </exec> <condition property="17fail"> <or> <available file="redirector17.out" type="file" /> <available file="redirector17.err" type="file" /> </or> </condition> <fail if="17fail">Files were created. </target> <target name="redirector18" depends="init" if="test.can.run"> <exec executable="sh"> <arg value="parrot.sh"/> <arg value="${ant.file}" /> <redirector alwayslog="true" logerror="true" outputproperty="redirector.out" /> </exec> <fail message="property redirector.out has unexpected content"> <condition> <not> <equals arg1="${ant.file} out" arg2="${redirector.out}" /> </not> </condition> </fail> </target> <!-- test will succeed as the OS wont match--> <target name="testExecUnknownOS"> <exec executable="nonexistent-program-we-expect" failonerror="true" os="ZX81"> </exec> </target> <target name="testExecOSFamily"> <exec executable="uptime" failonerror="true" osFamily="unix"> </exec> <exec executable="cmd.exe" failonerror="true" osFamily="winnt"> <arg value="/c" /> <arg value="time /t" /> </exec> </target> <target name="testExecInconsistentSettings"> <exec executable="nonexistent-program-we-expect" failonerror="true" osFamily="WIN9X" os="linux unix"> </exec> </target> <target name="cleanup"> <delete> <fileset file="${logFile}" /> <fileset dir="${basedir}" includes="redirect*" /> <fileset dir="${basedir}" includes="redirector*" /> </delete> </target> </project> Other Ant examples (source code examples)Here is a short list of links related to this Ant exec.xml source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.