On Fri, 2007-01-19 at 16:23 -0500, Li, Don wrote:
> I’m wondering if cocoon or ant supports a command like “keep”, to keep
> a directory and its associated files created by another app during
> “forrest clean” process.
>
Out of the box no. Well let´s say yes it is because if we analyze the
result of the command it should do NOTHING as I understand it.
If you want to develop such a task it should not be hard. You just need
to specify better what should be deleted.
>
>
> <!-- Please note, I’m using the “clean” subset command, “clean-site”
> for demo and clarity sake -->
>
> <!-- as is -->
>
> <target name="clean-site" depends="init-props"
>
> description="* Clean the project generated documents directory">
>
> <delete failonerror="false" dir="${project.site-dir}"/>
>
> <delete failonerror="false" file="${project.brokenlinkfile}"/>
>
> </target>
>
>
>
> <!-- to be or desirable state -->
>
> <target name="clean-site" depends="init-props"
>
> description="* Clean the project generated documents directory">
>
> <delete failonerror="false" dir="${project.site-dir}"/>
Here you need to specify which dirs you want to delete. The delete
command will act the following way. Imaging you have the "normal"
FORREST build structure.
I assume ${project.site-dir} is equivalent to build/site. Then you
should not use this root if you have files/dirs in there that you want
to keep.
>
> <delete failonerror="false" file="${project.brokenlinkfile}"/>
>
> <!-- NEW -- >
>
> <keep failonerror="false" dir="${project.site-keep-dir}"/>
>
Assuming the "keep" dir is a dir under build/site that cannot work
because you already have delete it in the step before using your given
example.
>
>
> <!-- project.site-keep-dir is defined elsewhere in this xml file
> -->
>
> </target>
>
>
>
> Is this approach doable?
No, with my assumption not.
However why not:
<target name="clean-site-keep" depends="init-props"
description="copies the keep dir and clean the project generated
documents directory">
<!-- NEW -- >
<!-- project.site-keep-dir-src
and destination (des) is defined elsewhere in this xml file -->
<copy failonerror="false" dir="${project.site-keep-dir-src}"
todir="${project.site-keep-dir-des}"/>
<delete failonerror="false" dir="${project.site-dir}"/>
<delete failonerror="false" file="${project.brokenlinkfile}"/>
</target>
That should do want you want. Have a look at the ant manual.
HTH
salu2
--
thorsten
"Together we stand, divided we fall!"
Hey you (Pink Floyd)