Hi,

both tasks, <foreach> and <for> only works with ant-contrib 0.6 - i suppose...
1.0b2 is without the for-task...

wahtever.. no its running with 0.6

I soluted it with a foreach, for and a macrodef...

For each person who are interested - here's the code:
[sorry for bad format - i use the horde-webmailer - not so easy to format code
inserted by copy-and-paste]

<project name="copytest" default="postalservice"
xmlns:cpptasks="antlib:org.sf.net.antcontrib.cpptasks">
        <taskdef resource="net/sf/antcontrib/antcontrib.properties"/>
        <property file="build.properties" />


        <!-- =================================
                              target: Schleife für Verfügbarkeitstest
                             ================================= -->
                        <target name="uploadloop">
                                        <foreach list="${hostlist}" target="upload_start" 
param="num" />
                        </target>
                        <!-- =================================
                          target: Macro - Def. sequentielle Abarbeitung der 
Server - Aufruf
per <antcall> des eigentlich upload-targets
                         ================================= -->
                <target name="upload_start" description="Checking the systems 
for
upload_start">

                        <macrodef name="upload_start_macro">
                                <attribute name="hostname"/>
                                <attribute name="num"/>
                                <attribute name="server" default="@[EMAIL 
PROTECTED]" />
                                <attribute name="user" default="[EMAIL 
PROTECTED]@{num}_user}" />
                                <attribute name="password" default="[EMAIL 
PROTECTED]@{num}_password}"/>
                                        <sequential>
                                                <record name="log.txt" 
action="start" />
                                                <sshexec host="[EMAIL PROTECTED]" 
username="@{user}" password="@{password}"
command="" trust="yes" failonerror="false" outputproperty="temp"
timeout="3000"
/>
                                                <record name="log.txt" 
action="stop"/>
                                                <echo>[EMAIL PROTECTED] 
available</echo>

                                        <for list="[EMAIL PROTECTED]" 
param="dir">
                                                <sequential>
                                                <antcall target="upload">
                                                        <param name="dir" 
value="@{dir}" />
                                                        <param name="host" 
value="[EMAIL PROTECTED]" />
                                                        <param name="chmod" 
value="[EMAIL PROTECTED]@{num}_chmod}"/>
                                                        <param name="server" 
value="[EMAIL PROTECTED]"/>
                                                        <param name="user" 
value="@{user}" />
                                                        <param name="password" 
value="@{password}"/>
                                                        <param name="num" 
value="@{num}" />
                                                        </antcall>
                                                        </sequential>
                                                </for>
                                        </sequential>
                        </macrodef>
                                <upload_start_macro hostname="host" 
num="${num}"/>

                </target>
                                <!-- =================================
                          target: Upload per SCP und setzen chmod, owner, group
                         ================================= -->
                <target name="upload" description="Uploading the files which 
are defined in
outputs - dir">

                                <scp todir="${user}:[EMAIL PROTECTED]:${dir}" 
trust="yes"
failonerror="false">
                                        <fileset dir="${output}">
                                                <include name="**/*" />
                                        </fileset>
                                </scp>
                                        <sshexec host="${server}" username="${user}" 
password="${password}"
trust="yes" failonerror="false" command="chmod ${chmod} ${dir}/**.*" />

                </target>
                        <!-- =================================
                          target: Start des Skripts
                         ================================= -->
                <target name="postalservice" depends="uploadloop"/>

</project>


very chaotic... :-))

greetz 2 all...
Beni

Zitat von "Rebhan, Gilbert" <[EMAIL PROTECTED]>:


Hi,

works fine with ant-contrib 1.0b2 and ant 1.6.5 here.

You should upgrade your ant-contrib version.

The <task> in that version supports the unset attribute.

see http://ant-contrib.sourceforge.net/tasks/tasks/index.html

Property Tasks / Variable

Regards, Gilbert


-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Sent: Monday, July 31, 2006 4:21 PM
To: user@ant.apache.org
Subject: RE: properties handling problem

Hi,
first, thanks for your help!!

I tried to implement the pfunctions - lib.. but not so successful..

I think the solution with ant-contrib and the 'for' - iteration is good...

But following problem embarrass me...

BUILD FAILED
C:\workspace\Synchro - Tool\Ant - Tests\build.xml:24: The <var> type doesn't
support the "unset" attribute.

this is the code:
<target name="default" description="--> description">
                <echo>"TEST"</echo>

                <property name="x" value="6"/>
                    <echo>${x}</echo>   <!-- will print 6 -->
                    <var name="x" unset="true"/>
                    <property name="x" value="12"/>
                    <echo>${x}</echo>   <!-- will print 12 -->

                 </target>

same problem was in Gilbert's script??
What's the problem?

In the official doc for ant-contrib is the task also included.... ?!?!

I've version 0.6 in use - and Ant 1.6.5...





Zitat von "Rebhan, Gilbert" <[EMAIL PROTECTED]>:


Second suggestion =

i think your problem is, that properties are immutable once set

here's a workaround with <var> from antcontrib :

<fileset id="files" dir="T:/foobar" includes="*.*" />


<for param="file">
<path>
        <fileset refid="files" />
</path>
<sequential>
<echo>
Filepath === @{file}
 </echo>

<var name="filename" unset="true" />
<basename property="filename" file="@{file}" />

<echo>
Filename === ${filename}
</echo>

</sequential>
</for>


the property file is automatically overwritten for every loop, but
the property filename has to be unset and set again

i think you have to do the same for
$hostname} and  ${num} in your script.


Regards, Gilbert

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Sent: Monday, July 31, 2006 11:06 AM
To: user@ant.apache.org
Subject: properties handling problem

Hi,
this is Code for deliver files to different systems with a pre-check...

I'll iterate with der foreach-Task.

The Problem is, I don't now how to set the properties.

Properties
available=availability
availabledir=/export/home/heisc01/anttest/
output=output
hostlist=host_1,host_2,host_3
hostname=host

I think like this: server="${$hostname}_${num}}"
but it didn't work..

Could somebody help me..

best regards..
Beni


<!-- =================================
                     target: Schleife für Verfügbarkeitstest
                    ================================= -->
       <target name="availableloop">
                               <foreach list="1,2,3,4" target="availability"
param="num" />
               </target>

       <!-- =================================
                 target: Verfügbarkeitstest der Systeme als Voraussetzung für
upload
                ================================= -->
       <target name="availability" description="Checking the systems for
availability">
               <echo message="Verfügbarkeitscheck Nr  ${num}"/>
               <delete file="${available}/*.available"/>
               <ftp action="get" password="${password}"
server="${$hostname}_${num}}"
userid="${username}" remotedir="${availabledir}">
                       <fileset dir="${available}">
                               <include name="*.available" />
                       </fileset>
               </ftp>
               <available
file="${available}/"${$hostname}_${num}}".available"
property=""${$hostname}_${num}}".ready"/>
               <antcall target="upload"></antcall>
       </target>


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]






---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]






---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to