On Tue, Sep 8, 2009 at 21:03, Andy Stevens<insomniacpeng...@googlemail.com> wrote: > 2009/9/8 Francis GALIEGUE <f...@one2team.com>: >> On Tue, Sep 8, 2009 at 08:41, Andy >> Stevens<insomniacpeng...@googlemail.com> wrote: >>> Hi, >>> >>> Is there an easy way to calculate an arbitrary relative path between two >>> files? >>> Part of my Ant script copies a default configuration file to a build >>> folder, in the course of which I modify it (with xmltask) with the >>> location of some source files. At the moment I'm using <property >>> location="${src.dir}" .../> to get the absolute path, but I'm curious >>> whether there's a way to get a relative path instead . Since I know >>> where it's being copied to, I could just use "../../${src.dir}", but >>> that's a bit fragile if the build directory changes (which it will do >>> - locally on my machine I use ${basedir}/build, but on our CI server >>> it's likely to override this with some other directory). >>> Ideally, I suppose I'd like to use something like <property >>> location="${src.dir}" basedir="${build.dir}" .../> Is there anything >>> like this in one of the "extras" libraries, or some other easy way to >>> achieve it? >> >> You can use ant-contrib's <propertyregex>: >> >> <propertyregex property="relativepath" >> input="${src.dir}" regexp="^${build.dir}/" replace=""/> > > Unless I'm missing something, that only works if src.dir is below > build.dir? Which is unlikely, as build.dir (by default > ${basedir}/build and its subdirectories) only gets created during the > build while src.dir (${basedir}/src) already exists... >
Well, instead of <property location=""> you can use <property value="">, which will be a relative path to your basedir. You can then prepend the build.dir property without even using a regex, like in "${build.dir}/${src.dir}". -- Francis Galiegue ONE2TEAM Ingénieur système Mob : +33 (0) 683 877 875 Tel : +33 (0) 178 945 552 f...@one2team.com 40 avenue Raymond Poincaré 75116 Paris --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@ant.apache.org For additional commands, e-mail: user-h...@ant.apache.org