Consider this filtered view of my directory tree:
src/HTML-XForm/lib
src/ResPath/lib
src/XML-MSXML6/lib
You get the idea, it is:
src/*/lib
Now I want to copy the files below src/*/lib, or most of them.
And I want to strip the leading two directories. I came up with
the following solution, but it is clumsy and I think there is
a better way that I'm missing.
<project default="copy">
<property name="source.dir" location="src"/>
<property name="target.dir" location="lib"/>
<target name="copy">
<copy todir="${target.dir}">
<fileset dir="${source.dir}">
<include name="*/lib/**/*.*"/>
<exclude name="**/urmel.*"/>
</fileset>
<!-- portability: path separator logic redoubled in regexp -->
<mapper type="regexp" from="^[-_a-zA-Z0-9]*[\\/]lib(.*)" to="\1"/>
</copy>
</target>
</project>
What I'm wondering is if there isn't some option like in tools such
as wget (--cut-dirs to shorten the path) or cpio or tar, which in
Ant's case would probably translate to a mapper, like cut-dirs-mapper.
--
Michael Ludwig