I've used this patch and feature for my application. Apparently, it hasn't been "grafted" into the Ant distribution. Has this functionality of specifying a source directory for exec been added? If so, how do I use it?
Thanks,
Dave At 10:43 AM 5/26/00 +1200, Mariusz Nowostawski wrote:
I wrote a trivial extension to the existing Exec task definition to make it include/exclude aware and I have already posted it here, but without any (positive or negative) feedback.
With the patch, the Exec task will behave as usual if used as usual. However, if used with the additional optional attribute 'src' which should be a directory, it will search for files, and will exec a command with attached list of files as an additional last argument. 'src' attribute can be renamed to 'dir' or whatever will be the 'standard look&feel' for matching tasks.
One can use the modified Exec for any task which requires executing a binary program with a list of files being its arguments; for example to compile multiple *.idl files:
(*) <exec dir="${basedir}" command="jidl --output-dir ${src.dir} --package com.my.idl" src="src/idls" output="out.txt"/>
if inside ${basedir}/src/idls we have files: a.idl, b.idl, c.txt it would execute effectively:
cd ${basedir}; jidl --output-dir src/main --package com.my.idl \ ${basedir}/src/idl/a.idl ${basedir}/src/idl/b.idl ${basedir}/src/idl/c.txt
(*) <exec dir="${basedir}" command="jidl --output-dir ${src.dir} --package com.my.idl" src="src/idl" output="out.txt"> <include name="*.idl"/> </exec>
if inside ${basedir}/src/idls we have files: a.idl, b.idl, c.txt it would execute effectively:
cd ${basedir}; jidl --output-dir src/main --package com.my.idl \ ${basedir}/src/idl/a.idl ${basedir}/src/idl/b.idl
The patch assumes that the command should be invoked once with the list of all matching files appended to the list of arguments. I cannot find any use of executing commands in list of files sequentially file after file with unknown order but if somebody needs it, the patch can be easily extended (i.e. exec task can be easily extended by additional flag: 'sequential="true"'). Maybe there are usefull file/source processors which can deal with single file at once only. All tools I use can take a list of arguments, and single invocation is enough.
best regards Mariusz
