I have added a target in a build file to delete backups that are older than 4 days by using a timestamp:
<tstamp>
<format pattern="MM/DD/yyyy HH:MM aa" offset="-4" property="backup.deletedate" />
</tstamp>
<echo message="Deleting log directories created on or before ${backup.deletedate}" />
<delete verbose="true">
<dirset dir="${backup.dir}/CI">
<date datetime="${backup.deletedate}" when="before" checkdirs="true" />
</dirset>
<dirset dir="${backup.dir}/DEV_MASTER">
<date datetime="${backup.deletedate}" when="before" checkdirs="true" />
</dirset>
</delete>
However it ony deletes from the first directory (CI) and skips the second.
How can I set it to remove from BOTH directories?
Seems the dirset collection was skipping non-empty directories. I overcame it by using a fileset for the entire backup dir:
<tstamp>
<format pattern="MM/DD/yyyy HH:MM aa" offset="-4" property="backup.deletedate" />
</tstamp>
<echo message="Deleting log directories created on or before ${backup.deletedate}" />
<delete verbose="true" includeemptydirs="true">
<fileset dir="${backup.dir}">
<date datetime="${backup.deletedate}" when="before" checkdirs="true" />
</fileset>
</delete>
Works like a charm!