ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Matt Benson <gudnabr...@gmail.com>
Subject Re: Please Help Me Finish This For Loop Code
Date Fri, 02 Dec 2011 16:43:19 GMT
Do you really need to iterate over numbers?  What practical concern
are you trying to address?

Matt

On Fri, Dec 2, 2011 at 10:34 AM, Scot P. Floess <sfloess@nc.rr.com> wrote:
>
> Oops, you said Ant contrib is fine ;)
>
> Let me give this some thought - I may be able to help.  I thought I had some
> code I wrote to do a "for" - I did and it used recursion...and just like you
> mention, craps out around 300 iterations...  At one time I had figured out
> how to do this...but have no idea where I put the code or if I even
> implemented it....
>
>
>
>  On Thu, 1 Dec 2011, Steve Amerige wrote:
>
>> Hi all,
>>
>> I'm looking to implement a for loop in Ant (antcontrib, javascript/groovy
>> scripts are okay).
>>
>> <target name="test-forloop">
>> <forloop start="1" end="1000">
>> <echo message="i = ${i}"/>
>> </forloop>
>> </target>
>>
>> <macrodef name="forloop">
>> <attribute name="i"      default=""/>
>> <attribute name="start"  default=""/>
>> <attribute name="end"    default=""/>
>> <attribute name="setup"  default="true"/>
>> <element name="forbody"  implicit="true"/>
>> <sequential>
>> <if>
>> <istrue value="@{setup}"/>
>> <then>
>> <script language="javascript">
>> <![CDATA[
>>              var start=@{start};
>>              var end=@{end};
>>              for (i = start; i <= end; i++) {
>>                 macrotask = project.createTask("forloop");
>>                 macrotask.setDynamicAttribute("i", i);
>>                 macrotask.setDynamicAttribute("setup", "false");
>>                 macrotask.perform();
>>              }
>>           ]]>
>> </script>
>> </then>
>> <else>
>> <echo message="forbody iteration # @{i}:"/>
>> <!-- <forbody/> -->
>> </else>
>> </if>
>> </sequential>
>> </macrodef>
>>
>> I'm looking to implement a for loop in Ant that acts on an element.  Ant
>> 1.7, Antcontrib, javascript/groovy scripts are okay.
>>
>> The above code works, but it doesn't call the <forbody/>.  I'm using
>> JavaScript to implement the for loop, but I don't know how to add to the
>> macrotask the passed-in element so that it gets called on each loop.  I've
>> read pages on createDynamicElement (deprecated) and addTask in
>> MacroInstance:
>>
>>
>> http://javasourcecode.org/html/open-source/ant/ant-1.7.0/org/apache/tools/ant/taskdefs/MacroInstance.html
>>
>> But no examples are given to help me finish the above example.  Note that
>> I did succeed in getting a version to work using recursion.  Unfortunately,
>> it would only recurse 300 deep before aborting.  The above code doesn't have
>> any problem with recursion.
>>
>> Can anyone help finish this code example so that <forbody/> can be called?
>>
>> Thanks,
>> Steve Amerige
>> SAS Institute, Deployment Software Development
>>
>
> 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


Mime
View raw message