deleting files not in whitelist

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

deleting files not in whitelist

Jason Guild
Hello:

I have a build file which declares a <resources> containing a list of expected files which are relative to some directory. I am trying to delete any files from that directory which /are not present/ in the <resourcelist>, and I can't figure out how to do that with the <delete> task and my understanding of the standard selectors.

Here's my resource list:
<resources id="my-whitelist">
    <resourcelist basedir="${some.dir}">
        <url url="${target.files.url}"/>
    </resourcelist>
</resources>
Basically my-whitelist is simply a list of filenames which are expected to exist relative to ${some.dir}.

In a target, I would like to somehow use the <delete> task to delete any files found in ${some.dir} which are /not listed in/ "my-whitelist", like this:
<delete dir="${some.dir}">
    <not>
        <resources refid="my-whitelist"/>
    </not>
</delete>
But this doesn't work. I also tried:
<delete>
    <restrict>
        <fileset dir="${some.dir}"/>
        <rsel:not xmlns:rsel="antlib:org.apache.tools.ant.types.resources.selectors">
            <resources refid="my-whitelist"/>
        </rsel:not>
    </restrict>
</delete>
Which doesn't work either.
Any help you can provide would be appreciated.
Thanks,
Jason


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]
Reply | Threaded
Open this post in threaded view
|

AW: deleting files not in whitelist

Jan Matèrne (jhm)
Sorry for not having the right time to digg into your solution.

Two workaround come into my mind:

1. Copy your whitelisted files into a tmp directory, delete the whole src directory and copy the whitelisted files back

2. Use <pathconvert> to convert your whitelist to an excludes-clause and use <delete><fileset .. excludes="${whiteliste.excludes}"/>

 

Jan

 

Von: Jason Guild [mailto:[hidden email]]
Gesendet: Mittwoch, 18. Juli 2018 01:45
An: [hidden email]
Betreff: deleting files not in whitelist

 

Hello:

I have a build file which declares a <resources> containing a list of expected files which are relative to some directory. I am trying to delete any files from that directory which /are not present/ in the <resourcelist>, and I can't figure out how to do that with the <delete> task and my understanding of the standard selectors.

Here's my resource list:

<resources id="my-whitelist">
    <resourcelist basedir="${some.dir}">
        <url url="${target.files.url}"/>
    </resourcelist>
</resources>

Basically my-whitelist is simply a list of filenames which are expected to exist relative to ${some.dir}.

In a target, I would like to somehow use the <delete> task to delete any files found in ${some.dir} which are /not listed in/ "my-whitelist", like this:

<delete dir="${some.dir}">
    <not>
        <resources refid="my-whitelist"/>
    </not>
</delete>

But this doesn't work. I also tried:

<delete>
    <restrict>
        <fileset dir="${some.dir}"/>
        <rsel:not xmlns:rsel="antlib:org.apache.tools.ant.types.resources.selectors">
            <resources refid="my-whitelist"/>
        </rsel:not>
    </restrict>
</delete>

Which doesn't work either.
Any help you can provide would be appreciated.



Thanks,
Jason