[prev in list] [next in list] [prev in thread] [next in thread]
List: ant-user
Subject: RE: Resource collections - Linux vs. windows
From: "Kimpton, C (Chris)" <Chris.Kimpton () rabobank ! com>
Date: 2014-02-12 10:26:48
Message-ID: 9BD67E5C356C014D8D34B9AF35C1AE1C18AB235F () rabobank ! com
[Download RAW message or body]
Ok - got it working. Below is the test script. Finally worked out to do it from your \
old posts about this from 2009 :)
Many Thanks.
<?xml version="1.0" encoding="UTF-8"?>
<project name="resource-collection-delete-sample" default="tryit">
<property name="test-dir" value="${basedir}/testdata"/>
<target name="setup-files">
<delete dir="${test-dir}"/>
<mkdir dir="${test-dir}"/>
<mkdir dir="${test-dir}/xxfile1"/>
<mkdir dir="${test-dir}/012"/>
<mkdir dir="${test-dir}/011"/>
<mkdir dir="${test-dir}/1"/>
<touch file="${test-dir}/1/test"/>
<sleep milliseconds="100" />
<mkdir dir="${test-dir}/2"/>
<touch file="${test-dir}/2/test"/>
<sleep milliseconds="100" />
<mkdir dir="${test-dir}/3"/>
<touch file="${test-dir}/3/test"/>
<sleep milliseconds="100" />
<mkdir dir="${test-dir}/4"/>
<touch file="${test-dir}/4/test"/>
<sleep milliseconds="100" />
<mkdir dir="${test-dir}/5"/>
<touch file="${test-dir}/5/test"/>
<sleep milliseconds="100" />
<mkdir dir="${test-dir}/6"/>
<touch file="${test-dir}/6/test"/>
<sleep milliseconds="100" />
<touch file="${test-dir}/44" />
<sleep milliseconds="100" />
<!-- create some files -->
</target>
<macrodef name="delete-dir-pattern">
<attribute name="dir"/>
<attribute name="regex"/>
<sequential>
<resources id="resource-all-dirs">
<dirset dir="@{dir}" >
<filename regex="@{regex}" />
</dirset>
</resources>
<resources id="resource-last-3-dirs">
<last count="3">
<sort>
<dirset dir="@{dir}" >
<filename regex="@{regex}" />
</dirset>
<date />
</sort>
</last>
</resources>
<pathconvert property="dirs-to-delete" pathsep=",">
<difference>
<resources refid="resource-all-dirs"/>
<resources refid="resource-last-3-dirs" />
</difference>
<regexpmapper from="(^.*$)" to="\1\${file.separator}**" />
</pathconvert>
<echo message="To delete:${dirs-to-delete}"/>
<delete verbose="true">
<files includes="${dirs-to-delete}"/>
</delete>
</sequential>
</macrodef>
<target name="delete-files">
<!-- delete all but last few old release directories -->
<delete-dir-pattern dir="${test-dir}" regex="^\d+$"/>
</target>
<target name="tryit" depends="setup-files, delete-files">
</target>
</project>
-----Original Message-----
From: Matt Benson [mailto:gudnabrsam@gmail.com]
Sent: 11 February 2014 15:43
To: Ant Users List
Subject: Re: Resource collections - Linux vs. windows
Yeah, I have a feeling you are running into some problem having to do with non-empty \
subdirectories. Usually some creative sorting, etc., can help. The delete task \
should know how to handle this with filesets; I believe its page in the manual \
mentions this very problem. Therefore you might try using the pathconvert task to \
create a list of includes for a fileset and pass *that* to the delete task. Keep us \
updated on your progress.
Matt
On Tue, Feb 11, 2014 at 9:30 AM, Kimpton, C (Chris) < Chris.Kimpton@rabobank.com> \
wrote:
> Good idea.
>
> It initially worked ok, when the directories were empty, but when I
> added files to each (touch steps below), that caused the script to not
> delete any files.
>
> And now I see that it does not work on Windows either ... my tests
> used empty directories.
>
> Does this sound like a bug or am I missing some subtlety around
> resource collections/dirset and non-empty subdirectories...
>
> Thanks in advance.
>
> Here is my test file:
>
>
> <?xml version="1.0" encoding="UTF-8"?> <project
> name="resource-collection-delete-sample" default="tryit">
>
> <property name="test-dir" value="${basedir}/testdata"/>
>
> <target name="setup-files">
> <delete dir="${test-dir}"/>
> <mkdir dir="${test-dir}"/>
> <mkdir dir="${test-dir}/xxfile1"/>
> <mkdir dir="${test-dir}/1"/>
> <touch file="${test-dir}/1/test"/>
> <sleep milliseconds="100" />
> <mkdir dir="${test-dir}/2"/>
> <touch file="${test-dir}/2/test"/>
> <sleep milliseconds="100" />
> <mkdir dir="${test-dir}/3"/>
> <touch file="${test-dir}/3/test"/>
> <sleep milliseconds="100" />
> <mkdir dir="${test-dir}/4"/>
> <touch file="${test-dir}/4/test"/>
> <sleep milliseconds="100" />
> <mkdir dir="${test-dir}/5"/>
> <touch file="${test-dir}/5/test"/>
> <sleep milliseconds="100" />
> <mkdir dir="${test-dir}/6"/>
> <touch file="${test-dir}/6/test"/>
> <sleep milliseconds="100" />
> <touch file="${test-dir}/44" />
> <sleep milliseconds="100" />
> <!-- create some files -->
> </target>
>
> <target name="delete-files">
> <!-- delete all but last few old release directories -->
> <resources id="resource-all-dirs">
> <dirset dir="${test-dir}" >
> <filename regex="^\d+$" />
> </dirset>
> </resources>
> <resources id="resource-last-3-dirs">
> <last count="3">
> <sort>
> <dirset dir="${test-dir}" >
> <filename regex="^\d+$" />
> </dirset>
> <date />
> </sort>
> </last>
> </resources>
> <delete verbose="true">
> <difference>
> <resources refid="resource-all-dirs"/>
> <resources refid="resource-last-3-dirs" />
> </difference>
> </delete>
> </target>
>
> <target name="tryit" depends="setup-files, delete-files">
> </target>
>
> </project>
>
>
>
>
> -----Original Message-----
> From: Matt Benson [mailto:gudnabrsam@gmail.com]
> Sent: 11 February 2014 14:15
> To: Ant Users List
> Subject: Re: Resource collections - Linux vs. windows
>
> Can you expand your example into a self-contained example that builds
> up an appropriate structure first, then still fails on Linux?
>
> Matt
>
>
> On Tue, Feb 11, 2014 at 2:21 AM, Kimpton, C (Chris) <
> Chris.Kimpton@rabobank.com> wrote:
>
> > Hi,
> >
> > I have a target that is trying to delete some directories, all but
> > the last few. It works as expected (I believe - it deletes files
> > when
> > expected) on my dev box (windows), but is not deleting anything on
> > the build server (Linux):
> >
> > It builds up 2 resource collections - one for all directories and
> > one for the last few and then does a delete based on the difference.
> >
> > <resources id="resource-all-dirs">
> > <dirset dir="${release-base-dir}" >
> > <filename regex="^\d+$" />
> > </dirset>
> > </resources>
> >
> > <resources id="resource-last-3-dirs">
> > <last count="4">
> > <sort>
> > <dirset dir="${release-base-dir}" >
> > <filename regex="^\d+$" />
> > </dirset>
> > <date />
> > </sort>
> > </last>
> > </resources>
> >
> > <delete verbose="true">
> > <difference>
> > <resources refid="resource-all-dirs"/>
> > <resources refid="resource-last-3-dirs" />
> > </difference>
> > </delete>
> >
> > I have tried running with debug and/or verbose but that does not
> > seem to add anything. Using version 1.9.3.
> >
> > Any tips on how to track down the issue?
> >
> > Cheers,
> > Chris
> >
> > _____________________________________________________________
> >
> > This email (including any attachments to it) is confidential,
> > legally privileged, subject to copyright and is sent for the
> > personal attention of the intended recipient only. If you have
> > received this email in error, please advise us immediately and
> > delete it. You are notified that disclosing, copying, distributing
> > or taking any action in reliance on the contents of this information
> > is strictly prohibited. Although we have taken reasonable
> > precautions to ensure no viruses are present in this email, we
> > cannot accept responsibility for any loss or damage arising from the
> > viruses in this email or attachments. We exclude any liability for
> > the content of this email, or for the consequences of any actions
> > taken on the basis of the information provided in this email or its
> > attachments, unless that
> information is subsequently confirmed in writing.
> > _____________________________________________________________
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org For additional
> commands, e-mail: user-help@ant.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic