Grokbase Groups Ant user March 2016
FAQ
Hello

We are tyring to automate an ant task, but finding it impossible to pass a
command line argument to a property inside a list.

We need to pass Name and Description for each agent specified from the
command line. for ex:
ant -f build.xml addNodes -Dagents="d01, d02, d03" -D{node???}='node1' -
D{node_description???}='node1 description'

each agent d01/d02/d03 will need have name and description.

<target name="addNodes" depends="clean">
   <input message="Agents Name Seperated By , :" addproperty="agents" />
   <for list="${agents}" delimiter="," param="agent">
     <sequential>
       <input message="Node Name:" addproperty="node" />
       <input message="Node Description:" addproperty="node_description" />
          <exec>
              <!-- external task -->
          </exec>
          <var name="node" unset="true"/>
     </sequential>
   </for>
</target>

Any suggestions is greatly appreciated.

thanks



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

Search Discussions

  • Scot P. Floess at Mar 4, 2016 at 9:20 pm
    So I see in your example below some input tasks. I'm guessing you'd
    rather not using input?
    On Fri, 4 Mar 2016, Petronius wrote:

    Hello

    We are tyring to automate an ant task, but finding it impossible to pass a
    command line argument to a property inside a list.

    We need to pass Name and Description for each agent specified from the
    command line. for ex:
    ant -f build.xml addNodes -Dagents="d01, d02, d03" -D{node???}='node1' -
    D{node_description???}='node1 description'

    each agent d01/d02/d03 will need have name and description.

    <target name="addNodes" depends="clean">
    <input message="Agents Name Seperated By , :" addproperty="agents" />
    <for list="${agents}" delimiter="," param="agent">
    <sequential>
    <input message="Node Name:" addproperty="node" />
    <input message="Node Description:" addproperty="node_description" />
    <exec>
    <!-- external task -->
    </exec>
    <var name="node" unset="true"/>
    </sequential>
    </for>
    </target>

    Any suggestions is greatly appreciated.

    thanks



    ---------------------------------------------------------------------
    To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
    For additional commands, e-mail: user-help@ant.apache.org
    Scot P. Floess RHCT (Certificate Number 605010084735240)
    Chief Architect FlossWare http://sourceforge.net/projects/flossware
                                 http://flossware.sourceforge.net
                                 https://github.com/organizations/FlossWare

    ---------------------------------------------------------------------
    To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
    For additional commands, e-mail: user-help@ant.apache.org
  • Petronius at Mar 4, 2016 at 10:30 pm
    We have to have these inputs for manual execution

    Thanks



    ---------------------------------------------------------------------
    To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
    For additional commands, e-mail: user-help@ant.apache.org
  • Scot P. Floess at Mar 5, 2016 at 12:44 pm
    I'm confused as you are asking about using command line params (via the
    -D) but then reusing those for the input task.

    As an example from your post:

    ant -f build.xml addNodes -Dagents="d01, d02, d03" -D{node???}='node1'
    -D{node_description???}='node1 description'

    Note you list -Dagents

    In your target I see this:

    <input message="Agents Name Seperated By , :" addproperty="agents" />

    So the property "agents" is both passed in command line and then reused
    inside with an input task.

    Same with the properties node and node_description.

    The for loop should have no trouble using properties denoted on the
    command line with the -D

    The -D will become a property in your ant script.



    On Fri, 4 Mar 2016, Petronius wrote:

    We have to have these inputs for manual execution

    Thanks



    ---------------------------------------------------------------------
    To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
    For additional commands, e-mail: user-help@ant.apache.org
    Scot P. Floess RHCT (Certificate Number 605010084735240)
    Chief Architect FlossWare http://sourceforge.net/projects/flossware
                                 http://flossware.sourceforge.net
                                 https://github.com/organizations/FlossWare

    ---------------------------------------------------------------------
    To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
    For additional commands, e-mail: user-help@ant.apache.org
  • Scot P. Floess at Mar 8, 2016 at 2:41 am
    Didn't hear back - did you get you figure it out?
    On Sat, 5 Mar 2016, Scot P. Floess wrote:


    I'm confused as you are asking about using command line params (via the -D)
    but then reusing those for the input task.

    As an example from your post:

    ant -f build.xml addNodes -Dagents="d01, d02, d03" -D{node???}='node1'
    -D{node_description???}='node1 description'

    Note you list -Dagents

    In your target I see this:

    <input message="Agents Name Seperated By , :" addproperty="agents" />

    So the property "agents" is both passed in command line and then reused
    inside with an input task.

    Same with the properties node and node_description.

    The for loop should have no trouble using properties denoted on the command
    line with the -D

    The -D will become a property in your ant script.



    On Fri, 4 Mar 2016, Petronius wrote:

    We have to have these inputs for manual execution

    Thanks



    ---------------------------------------------------------------------
    To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
    For additional commands, e-mail: user-help@ant.apache.org
    Scot P. Floess RHCT (Certificate Number 605010084735240)
    Chief Architect FlossWare http://sourceforge.net/projects/flossware
    http://flossware.sourceforge.net
    https://github.com/organizations/FlossWare

    ---------------------------------------------------------------------
    To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
    For additional commands, e-mail: user-help@ant.apache.org
    Scot P. Floess RHCT (Certificate Number 605010084735240)
    Chief Architect FlossWare http://sourceforge.net/projects/flossware
                                 http://flossware.sourceforge.net
                                 https://github.com/organizations/FlossWare

    ---------------------------------------------------------------------
    To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
    For additional commands, e-mail: user-help@ant.apache.org
  • Jan Matèrne (jhm) at Mar 8, 2016 at 6:59 am
    Something like that?

    Jan


    ant -Dantcontrib.jar=path/to/ant-contrib-1.0b3.jar
    -Dagent.list="node1,node2" -Dnode1.description=ServerA
    -Dnode2.description=AnotherServer



    <project default="startAgents" xmlns:antcontrib="antlib:net.sf.antcontrib">

         <taskdef uri="antlib:net.sf.antcontrib"
                  resource="net/sf/antcontrib/antlib.xml"
                  classpath="${antcontrib.jar}"/>


         <macrodef name="executeAgent">
             <attribute name="agent"/>
             <attribute name="description"/>
             <sequential>
                 <echo>starting Agent @{agent}: @{description}</echo>
             </sequential>
         </macrodef>


         <target name="startAgents">
             <antcontrib:for list="${agent.list}" delimiter="," param="agent">
                 <sequential>
                     <executeAgent agent="@{agent}"
    description="${@{agent}.description}"/>
                 </sequential>
             </antcontrib:for>
         </target>

    </project>



    Buildfile: C:\temp\ant-test\build.xml

    startAgents:
          [echo] starting Agent node1: ServerA
          [echo] starting Agent node2: AnotherServer

    BUILD SUCCESSFUL
    Total time: 1 second


    -----Ursprüngliche Nachricht-----
    Von: Scot P. Floess
    Gesendet: Dienstag, 8. März 2016 08:41
    An: Ant Users List
    Betreff: Re: Passing command Line args for a list


    Didn't hear back - did you get you figure it out?
    On Sat, 5 Mar 2016, Scot P. Floess wrote:


    I'm confused as you are asking about using command line params (via
    the -D) but then reusing those for the input task.

    As an example from your post:

    ant -f build.xml addNodes -Dagents="d01, d02, d03" -
    D{node???}='node1'
    -D{node_description???}='node1 description'

    Note you list -Dagents

    In your target I see this:

    <input message="Agents Name Seperated By , :" addproperty="agents" />

    So the property "agents" is both passed in command line and then
    reused inside with an input task.

    Same with the properties node and node_description.

    The for loop should have no trouble using properties denoted on the
    command line with the -D

    The -D will become a property in your ant script.



    On Fri, 4 Mar 2016, Petronius wrote:

    We have to have these inputs for manual execution

    Thanks




    --------------------------------------------------------------------
    -
    To unsubscribe, e-mail: user-unsubscribe@ant.apache.org For
    additional commands, e-mail: user-help@ant.apache.org
    Scot P. Floess RHCT (Certificate Number 605010084735240)
    Chief Architect FlossWare http://sourceforge.net/projects/flossware
    http://flossware.sourceforge.net
    https://github.com/organizations/FlossWare

    ---------------------------------------------------------------------
    To unsubscribe, e-mail: user-unsubscribe@ant.apache.org For
    additional
    commands, e-mail: user-help@ant.apache.org
    Scot P. Floess RHCT (Certificate Number 605010084735240)
    Chief Architect FlossWare http://sourceforge.net/projects/flossware
    http://flossware.sourceforge.net
    https://github.com/organizations/FlossWare

    ---------------------------------------------------------------------
    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
  • Scot P. Floess at Mar 9, 2016 at 3:35 pm
    Jan,

    Yeah that's what I thought would be wanted too... But I asked about the
    input tasks and apparently those are needed as well. So I was sorta
    confused about the whole thing.
    On Tue, 8 Mar 2016, Jan Matèrne (jhm) wrote:

    Something like that?

    Jan


    ant -Dantcontrib.jar=path/to/ant-contrib-1.0b3.jar
    -Dagent.list="node1,node2" -Dnode1.description=ServerA
    -Dnode2.description=AnotherServer



    <project default="startAgents" xmlns:antcontrib="antlib:net.sf.antcontrib">

    <taskdef uri="antlib:net.sf.antcontrib"
    resource="net/sf/antcontrib/antlib.xml"
    classpath="${antcontrib.jar}"/>


    <macrodef name="executeAgent">
    <attribute name="agent"/>
    <attribute name="description"/>
    <sequential>
    <echo>starting Agent @{agent}: @{description}</echo>
    </sequential>
    </macrodef>


    <target name="startAgents">
    <antcontrib:for list="${agent.list}" delimiter="," param="agent">
    <sequential>
    <executeAgent agent="@{agent}"
    description="${@{agent}.description}"/>
    </sequential>
    </antcontrib:for>
    </target>

    </project>



    Buildfile: C:\temp\ant-test\build.xml

    startAgents:
    [echo] starting Agent node1: ServerA
    [echo] starting Agent node2: AnotherServer

    BUILD SUCCESSFUL
    Total time: 1 second


    -----Ursprüngliche Nachricht-----
    Von: Scot P. Floess
    Gesendet: Dienstag, 8. März 2016 08:41
    An: Ant Users List
    Betreff: Re: Passing command Line args for a list


    Didn't hear back - did you get you figure it out?
    On Sat, 5 Mar 2016, Scot P. Floess wrote:


    I'm confused as you are asking about using command line params (via
    the -D) but then reusing those for the input task.

    As an example from your post:

    ant -f build.xml addNodes -Dagents="d01, d02, d03" -
    D{node???}='node1'
    -D{node_description???}='node1 description'

    Note you list -Dagents

    In your target I see this:

    <input message="Agents Name Seperated By , :" addproperty="agents" />

    So the property "agents" is both passed in command line and then
    reused inside with an input task.

    Same with the properties node and node_description.

    The for loop should have no trouble using properties denoted on the
    command line with the -D

    The -D will become a property in your ant script.



    On Fri, 4 Mar 2016, Petronius wrote:

    We have to have these inputs for manual execution

    Thanks




    --------------------------------------------------------------------
    -
    To unsubscribe, e-mail: user-unsubscribe@ant.apache.org For
    additional commands, e-mail: user-help@ant.apache.org
    Scot P. Floess RHCT (Certificate Number 605010084735240)
    Chief Architect FlossWare http://sourceforge.net/projects/flossware
    http://flossware.sourceforge.net
    https://github.com/organizations/FlossWare

    ---------------------------------------------------------------------
    To unsubscribe, e-mail: user-unsubscribe@ant.apache.org For
    additional
    commands, e-mail: user-help@ant.apache.org
    Scot P. Floess RHCT (Certificate Number 605010084735240)
    Chief Architect FlossWare http://sourceforge.net/projects/flossware
    http://flossware.sourceforge.net
    https://github.com/organizations/FlossWare

    ---------------------------------------------------------------------
    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
    Scot P. Floess RHCT (Certificate Number 605010084735240)
    Chief Architect FlossWare http://sourceforge.net/projects/flossware
                                 http://flossware.sourceforge.net
                                 https://github.com/organizations/FlossWare

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupuser @
categoriesant
postedMar 4, '16 at 5:40p
activeMar 9, '16 at 3:35p
posts7
users3
websiteant.apache.org

People

Translate

site design / logo © 2018 Grokbase