In an Ant target I get a property, containing the list of directories to be included in further action (copying, filtering, etc.). It looks like this:
directories=dir1, dir2, dir3
I need a way to convert this list to a fileset or patternset that selects all the files in these directories.
I know I can use a script to generate pattern strings and then use it in the "include" or "exclude", but is there are a way to avoid scripts?
How about using the antcontrib
propertyregex
task to convert the comma-separated list into wildcards suitable for a fileset?At this point we now have:
That can be used with a further suffixed wildcard to get the full fileset:
(The fiddly
${wildcard}
is to ensure portability between unix and windows filesystems, you could use/**/*
if you're pure unix.)Note that as of Ant 1.9.4, there is a new construct <multirootfileset> that provides that functionality, even if the dirs are not siblings:
Something like this should work:
Yes,
dirset
isn'tfileset
. However, it may be enough, or else you can probably use afor
orforeach
from ant-contrib to iterate over the directories in your target. You might also be able to define a ResourceCollection based around the dirset. It might help to know what the "further action" is expected to be.However, this feels like too much work ...