Every time I see constructs like this I want to scream for the support of
simple expression evaluator, because without them NAnt syntax gets uglier
every time someone invents a potentially useful extension.

MSBuild has a very simple EE here, and I think it's a good idea to support
it too.

I think ours should have some basic operators =, !=, some environmental
functions for working
with files (exists(file), lastmod(file)), plus some string operators (like
"startsWith", "endsWith", "contains", substring", "concat", "uppercase",
"lowercase", "length" - XPath functions can be a guide here).

Data types supported would be strings, integers, and datetimes.

So the previous example would be a simple one-liner:

<if test="'${myOne}'='${myOther}'">
</if>

Assuming you have a tokenizer - which is pretty easy in this case - writing
a simple, recursive parser should be trivial.

I've written many parsers/evaluators in C# and would be glad to help here.

Jarek

----- Original Message ----- 
From: "Jean Rajotte" <[EMAIL PROTECTED]>
To: "'Sean Perkin'" <[EMAIL PROTECTED]>;
<[EMAIL PROTECTED]>
Sent: Thursday, November 13, 2003 10:55 PM
Subject: RE: [Nant-users] How to compare two property values


> the only way that comes to mind is to write a script (my standard cheat
> :)
>
> <target name="test-compare" >
>     <property name="myOne" value="obo" />
>     <property name="myOther" value="obo" />
>
>     <property name="compare.a" value="myOne" />
>     <property name="compare.b" value="myOther" />
>     <call target="compare.equal" force="true" />
>
>     <echo message="${compare.result}" />
>
>
> </target>
>
> <target name="compare.equal" >
>   <script language="C#"><code><![CDATA[
>     public static void ScriptMain( Project project ) {
>       string a = project.Properties[ project.Properties[ "compare.a"] ];
>       string b = project.Properties[ project.Properties[ "compare.b"] ];
>       project.Properties[ "compare.result" ] = (a==b) ? "true" :
> "false";
>     }
>   ]]></code></script>
> </target>
>
>
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of Sean Perkin
> Sent: Thursday, November 13, 2003 15:28
> To: [EMAIL PROTECTED]
> Subject: [Nant-users] How to compare two property values
>
>
> Hi Folks,
>
> Does anyone know how to compare two property values in NAnt?
>
> Regards,
>
>
>     Sean Perkin
>     Build Developer
>     Cactus Commerce
>       819.778.0313 . 315      819.771.0921
>       http://www.cactuscommerce.com
>       [EMAIL PROTECTED]
>
>
>
> -------------------------------------------------------
> This SF.Net email sponsored by: ApacheCon 2003,
> 16-19 November in Las Vegas. Learn firsthand the latest
> developments in Apache, PHP, Perl, XML, Java, MySQL,
> WebDAV, and more! http://www.apachecon.com/
> _______________________________________________
> Nant-users mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/nant-users
>



-------------------------------------------------------
This SF.Net email sponsored by: ApacheCon 2003,
16-19 November in Las Vegas. Learn firsthand the latest
developments in Apache, PHP, Perl, XML, Java, MySQL,
WebDAV, and more! http://www.apachecon.com/
_______________________________________________
Nant-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-users

Reply via email to