You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ant.apache.org by Michael George <md...@cs.cornell.edu> on 2009/07/17 04:44:55 UTC

a task for selecting among possible options?

Hello,

I'm trying to clean up our build process, and one of the problems is 
that everyone on the team uses a different configuration mechanism 
(environment vars, properties files, manual config,...).  In trying to 
be backwards compatible with everyone's process I find I would like a 
task that sets a property by selecting the first valid item from a list 
of possibilities.  For example, I'd like to able to write something like


<choice property="foo">
  <condition> <available file="@{}/foo.txt" /> </condition>

  <option value="${env.FOO}" />
  <option value="${basedir}/foo" />
  <option>
    <dirset dir="/usr" includes="**/foo*"/>
    </option>
</choice>

To mean "set foo to the first of env.FOO, ${basedir}/foo, and /usr/*/foo 
that contains the file foo.txt."  I'd also like to perhaps have the 
option of prompting the user if multiple valid choices are found (for 
example, with select="first" or select="prompt").

Does anyone know of any tasks that would make this kind of configuration 
easy, before I dive in and try to write one myself?  If not, would 
people find this useful if I code it up and submit it to ant-contrib?

Thanks!

--Mike

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org


AW: AW: a task for selecting among possible options?

Posted by Ja...@rzf.fin-nrw.de.
Because you always configure file+value with the same value you could tune it:

<macrodef name="check">
    <attribute name="property"/>
    <attribute name="file"/>
    <sequential>
        <available property="@{property}" file="@{file}" value="@{file}"/>
    </sequential>
</macrodef> 
<check property="foo" file="foo.txt"/>
<check property="foo" file="${env.FOO}"/>
...



Jan

>-----Ursprüngliche Nachricht-----
>Von: Michael George [mailto:mdgeorge@cs.cornell.edu] 
>Gesendet: Dienstag, 21. Juli 2009 14:17
>An: Ant Users List
>Betreff: Re: AW: a task for selecting among possible options?
>
>Oh my god that's so much simpler than what I was doing.  Thanks!
>
>--Mike
>
>Jan.Materne@rzf.fin-nrw.de wrote:
>> <available property="foo" file="foo.txt" value="foo.txt"/> 
>> <available property="foo" file="${env.FOO}" value="${env.FOO}/>
>> ... more available tasks
>>
>> Because properties are immutable the first hit wins.
>>
>>
>> Jan
>>
>>
>>
>>   
>>> -----Ursprüngliche Nachricht-----
>>> Von: Michael George [mailto:mdgeorge@cs.cornell.edu] 
>>> Gesendet: Freitag, 17. Juli 2009 04:45
>>> An: user@ant.apache.org
>>> Betreff: a task for selecting among possible options?
>>>
>>> Hello,
>>>
>>> I'm trying to clean up our build process, and one of the 
>problems is 
>>> that everyone on the team uses a different configuration mechanism 
>>> (environment vars, properties files, manual config,...).  
>In trying to 
>>> be backwards compatible with everyone's process I find I 
>would like a 
>>> task that sets a property by selecting the first valid item 
>>>     
>> >from a list 
>>   
>>> of possibilities.  For example, I'd like to able to write 
>>> something like
>>>
>>>
>>> <choice property="foo">
>>>  <condition> <available file="@{}/foo.txt" /> </condition>
>>>
>>>  <option value="${env.FOO}" />
>>>  <option value="${basedir}/foo" />
>>>  <option>
>>>    <dirset dir="/usr" includes="**/foo*"/>
>>>    </option>
>>> </choice>
>>>
>>> To mean "set foo to the first of env.FOO, ${basedir}/foo, and 
>>> /usr/*/foo 
>>> that contains the file foo.txt."  I'd also like to perhaps have the 
>>> option of prompting the user if multiple valid choices are 
>found (for 
>>> example, with select="first" or select="prompt").
>>>
>>> Does anyone know of any tasks that would make this kind of 
>>> configuration 
>>> easy, before I dive in and try to write one myself?  If not, would 
>>> people find this useful if I code it up and submit it to 
>ant-contrib?
>>>
>>> Thanks!
>>>
>>> --Mike
>>>
>>> 
>---------------------------------------------------------------------
>>> 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
>>
>>   
>
>
>---------------------------------------------------------------------
>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


Re: AW: a task for selecting among possible options?

Posted by Michael George <md...@cs.cornell.edu>.
Oh my god that's so much simpler than what I was doing.  Thanks!

--Mike

Jan.Materne@rzf.fin-nrw.de wrote:
> <available property="foo" file="foo.txt" value="foo.txt"/> 
> <available property="foo" file="${env.FOO}" value="${env.FOO}/>
> ... more available tasks
>
> Because properties are immutable the first hit wins.
>
>
> Jan
>
>
>
>   
>> -----Ursprüngliche Nachricht-----
>> Von: Michael George [mailto:mdgeorge@cs.cornell.edu] 
>> Gesendet: Freitag, 17. Juli 2009 04:45
>> An: user@ant.apache.org
>> Betreff: a task for selecting among possible options?
>>
>> Hello,
>>
>> I'm trying to clean up our build process, and one of the problems is 
>> that everyone on the team uses a different configuration mechanism 
>> (environment vars, properties files, manual config,...).  In trying to 
>> be backwards compatible with everyone's process I find I would like a 
>> task that sets a property by selecting the first valid item 
>>     
> >from a list 
>   
>> of possibilities.  For example, I'd like to able to write 
>> something like
>>
>>
>> <choice property="foo">
>>  <condition> <available file="@{}/foo.txt" /> </condition>
>>
>>  <option value="${env.FOO}" />
>>  <option value="${basedir}/foo" />
>>  <option>
>>    <dirset dir="/usr" includes="**/foo*"/>
>>    </option>
>> </choice>
>>
>> To mean "set foo to the first of env.FOO, ${basedir}/foo, and 
>> /usr/*/foo 
>> that contains the file foo.txt."  I'd also like to perhaps have the 
>> option of prompting the user if multiple valid choices are found (for 
>> example, with select="first" or select="prompt").
>>
>> Does anyone know of any tasks that would make this kind of 
>> configuration 
>> easy, before I dive in and try to write one myself?  If not, would 
>> people find this useful if I code it up and submit it to ant-contrib?
>>
>> Thanks!
>>
>> --Mike
>>
>> ---------------------------------------------------------------------
>> 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
>
>   


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org


AW: a task for selecting among possible options?

Posted by Ja...@rzf.fin-nrw.de.
<available property="foo" file="foo.txt" value="foo.txt"/> 
<available property="foo" file="${env.FOO}" value="${env.FOO}/>
... more available tasks

Because properties are immutable the first hit wins.


Jan



>-----Ursprüngliche Nachricht-----
>Von: Michael George [mailto:mdgeorge@cs.cornell.edu] 
>Gesendet: Freitag, 17. Juli 2009 04:45
>An: user@ant.apache.org
>Betreff: a task for selecting among possible options?
>
>Hello,
>
>I'm trying to clean up our build process, and one of the problems is 
>that everyone on the team uses a different configuration mechanism 
>(environment vars, properties files, manual config,...).  In trying to 
>be backwards compatible with everyone's process I find I would like a 
>task that sets a property by selecting the first valid item 
>from a list 
>of possibilities.  For example, I'd like to able to write 
>something like
>
>
><choice property="foo">
>  <condition> <available file="@{}/foo.txt" /> </condition>
>
>  <option value="${env.FOO}" />
>  <option value="${basedir}/foo" />
>  <option>
>    <dirset dir="/usr" includes="**/foo*"/>
>    </option>
></choice>
>
>To mean "set foo to the first of env.FOO, ${basedir}/foo, and 
>/usr/*/foo 
>that contains the file foo.txt."  I'd also like to perhaps have the 
>option of prompting the user if multiple valid choices are found (for 
>example, with select="first" or select="prompt").
>
>Does anyone know of any tasks that would make this kind of 
>configuration 
>easy, before I dive in and try to write one myself?  If not, would 
>people find this useful if I code it up and submit it to ant-contrib?
>
>Thanks!
>
>--Mike
>
>---------------------------------------------------------------------
>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