You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by Mariusz Nowostawski <ma...@marni.otago.ac.nz> on 2000/05/08 00:34:06 UTC
Re: Find (was: New tasks.)
>> Proposal for a new task: find
>> It would look like this:
>>
>> <find basedir=... includes=... excludes...>
>> <task1 ... ${find.file} ${find.dir} ... />
>> <task2 ... ${find.file} ${find.dir} ... />
>> ...
>> </find>
>>
>> Analogous to Unix find <dir> -name <regexp> -exec <task>
[...]
> Good idea, I would just suggest that if the result of <find> is
> in find.file and find.dir properties, why nest <task1> and <task2>
> in <find> ? I would rather imagine something like :
> <find basedir=... includes=... excludes.../>
> <task1 ... ${find.file} ${find.dir} ... />
> <task2 ... ${find.file} ${find.dir} ... />
[...]
>> Any value? I haven't coded one up yet.
I do not like personally 'find' model to be present in ANT. I like a
lot, the way processing of my build inputs works currently in ANT - which
is distinct from traditional 'make' and 'find'-based models.
I cannot see when:
<task1 ... ${find.file} ${find.dir} ... />
<task2 ... ${find.file} ${find.dir} ... />
would be of use? Everywhere the task can take a list of files, it itself
implements include/exclude model, like javac/delete etc. With find we
would have two ways of doing the same thing, which I feel would break
the rule of making things simple. For example if I have to compile
all my java source files in one directory and then copy them to the
distribution src directory, in current ANT, with 'no-find-philosophy'
I do:
1. compile all java files from _src.dir_
2. copy all java files from _src.dir_ to _dist.dir_
with 'find' it usually looks like:
1. find all the java files from _src.dir_
2. compile all what's in ${find.file} ${find.dir}
3. copy all what's in ${find.file} ${find.dir} to _dist.dir_
Do not tell me that you do not like the beauty, simplicity and
the very explicit way of the first (current ANT) model. Everywhere ANT
lacks the excludes/includes model (like in current exec) it needs
simple to be extended. Apart from that, in Unix:
find <dir> -name <regexp> -exec <task>
<task> is performed sequentially one call per found item. In most cases
(like in the one with compiling and copying) you do not want the task
to be performed n times, once per each found item, you want it to be
performed once with the list of items (which I suppose the propose
find task would differ from the real
find <dir> -name <regexp> -exec <task> ).
Do not get me wrong, I love 'find', and it would be not possible to
have 'make' without it, but I am very happy not to have find in ANT,
and I do not feel the need for it here either. When do you need find
task to be used? and with what tasks?
-1
regards
Mariusz
Re: Find (was: New tasks.)
Posted by External Lists <ex...@ManagedObjects.com>.
Okay, Mariusz. I see your point. You're saying ANT only needs one "visitor
pattern" implementation, and includes/excludes is already present. For
those tasks that don't implement it, they should be extended. I can live
with that, too. It's also simpler than nesting tasks.
-1
John
----- Original Message -----
From: Mariusz Nowostawski <ma...@marni.otago.ac.nz>
To: <an...@jakarta.apache.org>
Sent: Sunday, May 07, 2000 6:34 PM
Subject: Re: Find (was: New tasks.)
>
> >> Proposal for a new task: find
> >> It would look like this:
> >>
> >> <find basedir=... includes=... excludes...>
> >> <task1 ... ${find.file} ${find.dir} ... />
> >> <task2 ... ${find.file} ${find.dir} ... />
> >> ...
> >> </find>
> >>
> >> Analogous to Unix find <dir> -name <regexp> -exec <task>
> [...]
>
> > Good idea, I would just suggest that if the result of <find> is
> > in find.file and find.dir properties, why nest <task1> and <task2>
> > in <find> ? I would rather imagine something like :
>
> > <find basedir=... includes=... excludes.../>
> > <task1 ... ${find.file} ${find.dir} ... />
> > <task2 ... ${find.file} ${find.dir} ... />
> [...]
>
> >> Any value? I haven't coded one up yet.
>
>
> I do not like personally 'find' model to be present in ANT. I like a
> lot, the way processing of my build inputs works currently in ANT - which
> is distinct from traditional 'make' and 'find'-based models.
>
> I cannot see when:
> <task1 ... ${find.file} ${find.dir} ... />
> <task2 ... ${find.file} ${find.dir} ... />
> would be of use? Everywhere the task can take a list of files, it itself
> implements include/exclude model, like javac/delete etc. With find we
> would have two ways of doing the same thing, which I feel would break
> the rule of making things simple. For example if I have to compile
> all my java source files in one directory and then copy them to the
> distribution src directory, in current ANT, with 'no-find-philosophy'
> I do:
>
> 1. compile all java files from _src.dir_
> 2. copy all java files from _src.dir_ to _dist.dir_
>
> with 'find' it usually looks like:
>
> 1. find all the java files from _src.dir_
> 2. compile all what's in ${find.file} ${find.dir}
> 3. copy all what's in ${find.file} ${find.dir} to _dist.dir_
>
> Do not tell me that you do not like the beauty, simplicity and
> the very explicit way of the first (current ANT) model. Everywhere ANT
> lacks the excludes/includes model (like in current exec) it needs
> simple to be extended. Apart from that, in Unix:
> find <dir> -name <regexp> -exec <task>
> <task> is performed sequentially one call per found item. In most cases
> (like in the one with compiling and copying) you do not want the task
> to be performed n times, once per each found item, you want it to be
> performed once with the list of items (which I suppose the propose
> find task would differ from the real
> find <dir> -name <regexp> -exec <task> ).
>
> Do not get me wrong, I love 'find', and it would be not possible to
> have 'make' without it, but I am very happy not to have find in ANT,
> and I do not feel the need for it here either. When do you need find
> task to be used? and with what tasks?
>
> -1
>
> regards
> Mariusz
>