Oh, right, it's all coming back to me! You taught me that trick a couple of
years back on this list. I hadn't thought of that as a solution to my
current problem but you're right, it would work for that, too.
Excellent! These 'tricks' make Ant conditional processing much more
palateable than having to set a property so that you can set another
property so that you can invoke or bypass another target just to display a
message. Why aren't these tricks documented in the manual? There should
really be a section for techniques like this....
Rhino
----- Original Message -----
From: <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Wednesday, December 21, 2005 1:05 AM
Subject: AW: Testing multiple values?
Another trick is using
<antcall target="handle${script1.result}">
and provide a couple of targets.
Jan
-----Ursprüngliche Nachricht-----
Von: Rhino [mailto:[EMAIL PROTECTED]
Gesendet: Mittwoch, 21. Dezember 2005 00:07
An: Ant Users List
Betreff: Re: Testing multiple values?
Wow, that's remarkably easy and straightforward, which is not
what I expect from Ant when it comes to conditions :-)
I'll give this a try and post back if it doesn't work properly.
Thank you!!
Rhino
----- Original Message -----
From: "Ondrej Svetlik" <[EMAIL PROTECTED]>
To: "Ant Users List" <[email protected]>
Sent: Tuesday, December 20, 2005 4:52 PM
Subject: Re: Testing multiple values?
Well, how about
<exec />
<fail message="Script1 failed. See Script1.out.">
<condition>
<equals arg1="${script1.result}" arg2="1" />
</condition>
</fail>
<fail message="WinSCP3 environment not initialized. Please
click on the
keyfile and supply the passphrase.">
<condition>
<equals arg1="${script1.result}" arg2="-1073741819" />
</condition>
</fail>
Best regards,
Ondrej Svetlik
Rhino wrote:
How do I handle three different possible values from an
'exec' task when
I want one value to be ignored and each of the other two
values to invoke
different targets?
I have an exec task that has the parameter
resultproperty="script1.result". The value of
script1.result can be: 0
(indicates that the script worked fine without errors); 1
(indicates that
the script ran but had errors); or -1073741819 (indicates that the
WinSCP3 environment was not initialized properly; basically, the
passphrase hadn't yet been entered so that WinSCP3 could verify the
login).
When script.result is 0, I want to move on to the next
target within my
build. When script.result is 1, I want to fail with the
error message
("Script1 failed. See Script1.out."). When script1.result is
-1073741819, I want to fail with the error message
("WinSCP3 environment
not initialized. Please click on the keyfile and supply the
passphrase.")
My script currently handles the 0 and 1 conditions just
fine but I don't
know how to change my code to handle the third value for
script1.result.
Here is what I have so far:
<target name="upload-Tonge" description="Upload to the
Tonge server.">
<echo message="Uploading to Tonge...."/>
<!--echoproperties prefix="server"/-->
<exec executable="${WinSCP3.com}" os="Windows XP"
output="${script1.out}"
error="${script1.err}"
resultproperty="script1.result"
description="Run a trivial script that doesn't change
anything, just to
show that everything works.">
<arg line="/console /script=${script1.in}"/>
</exec>
</target>
<target name="check-Script1" depends="upload-Tonge"
description="See if
Script1 worked.">
<echo message="Check script1 result"/>
<condition property="script1.failed">
<equals arg1="${script1.result}" arg2="1"/>
</condition>
<echo message="script1.result=${script1.result}"/>
<antcall target="upload-Tonge-Script1-errors"/>
</target>
<target name="upload-Tonge-Script1-errors" if="script1.failed">
<fail message="Oops, script ${script1.name} failed on Tonge
server. See
${script1.out} and ${script1.err}."/>
</target>
<target name="upload-Tonge-Script2-errors" if="script2.failed">
<fail message="Oops, script ${script2.name} failed on Tonge
server. See
${script2.out} and/or ${script2.err}."/>
</target>
Do I need a different condition task to handle the
-1073741819 value for
script1.result? If yes, don't I have to worry about the
'upload-Bongo'
task executing twice? Or can I modify the existing
condition task to
invoke two different targets based on the non-zero value of
script.result, one target for script1.result = 1 and a
different target
for script1.result = -1073741819?
Or do I need to change the script more radically and do
things a whole
different way?
I'd prefer to stay with core tasks if at all possible.
Rhino
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.371 / Virus Database: 267.14.1/207 - Release
Date: 19/12/2005
--
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.371 / Virus Database: 267.14.1/207 - Release
Date: 19/12/2005
---------------------------------------------------------------------
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]
--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.371 / Virus Database: 267.14.1/207 - Release Date: 19/12/2005
--
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.371 / Virus Database: 267.14.2/208 - Release Date: 20/12/2005
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]