I don't know why nant won't recognize the <script> task.

I did notice a bug below. The function needs to be static! I don't know
whether that has anything to do with nant not recognizing the <script>
task.

As far as I know, you don't need to escape the '>='.

I see that you are negating the results of the function... You could
change the function name to 'version-less-than' and change the return
statement to:

return v1 < v2;

and then you won't need to negate the function call. Let me know if you
have any other problems. 


--
Edwin G. Castro
Firing Systems Engineer
[EMAIL PROTECTED]
 

-----Original Message-----
From: Jeroen Zwartepoorte [mailto:[EMAIL PROTECTED] 
Sent: Friday, August 13, 2004 11:21 AM
To: Castro, Edwin Gabriel (Firing Systems Engr.)
Cc: Gert Driesen; [EMAIL PROTECTED]
Subject: RE: [Nant-users] checking nant version

Hmm, nant is not recognizing the <script> task:

Invalid element <script>. Unknown task or datatype.

It doesn't seem to matter where i put the <script> task in the build
file. Is this a bug in a recent nightly build? (i'm using
nant-0.85-20040809).

Btw: it seems "nant.version" is a predefined property. So i don't need
the "${assembly::get-version(nant::get-location())}" bit. Are these
properties documented somewhere?

Jeroen

p.s. relevant bits from default.build below (does the greater than sign
in "v1 >= v2" need to be escaped btw?):

    <!-- script hack for checking nant versions -->
    <script language="C#">
        <code><![CDATA[
            [Function("version-greater-or-equal")]
            public bool VersionGreaterOrEqual (string version1, string
version2)            {
                Version v1 = new Version (version1);
                Version v2 = new Version (version2);
                return v1 >= v2;
            }
        ]]></code>
    </script>
 

    <!-- check for pkg-config dependencies and initialize properties -->
    <target name="init" description="initializes build properties">
        <!-- check for an up-to-date nant -->
        <if test="${not(script::version-greater-or-equal(nant.version,
nant.neededversion))}">
            <echo message="MonoDevelop requires nant version
${nant.neededversion} or greater"/>
            <fail message="nant version not supported"/>
        </if>



On Fri, 2004-08-13 at 12:45 -0500, Castro, Edwin Gabriel (Firing Systems
Engr.) wrote:
> I would recommend that you use the <script> task to create your own 
> custom function taking two strings and returning a boolean. You can 
> then use the System.Version class to actually do the comparison. 
> Something like this:
> 
> <script language="C#">
>   <code><![CDATA[
>     [Function("version-greater-or-equal")]
>     public bool VersionGreaterOrEqual(string version1, string
version2)
>     {
>       Version v1 = new Version(version1);
>       Version v2 = new Version(version2);
>       return v1 >= v2;
>     }
>   ]]></code>
> </script>
> 
> You can then call it like this:
> 
> <property name="nant.version" value="0.85.1684.0"/> <property 
> name="nant.currentversion"
> value="${assembly::get-version(nant::get-location())}"/>
> 
> <if test="${script::version-greater-or-equal(nant.currentversion,
> nant.version)}">
>   <!-- Do something -->
> </if>
> 
> I'm sure there are other ways too!
> 
> --
> Edwin G. Castro
> Firing Systems Engineer
> [EMAIL PROTECTED]
>  
> 
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of Jeroen 
> Zwartepoorte
> Sent: Friday, August 13, 2004 8:26 AM
> To: Gert Driesen
> Cc: [EMAIL PROTECTED]
> Subject: Re: [Nant-users] checking nant version
> 
> Hi Gert,
> 
> Thanks for the quick reply. Still have a question though:
> 
> How do i actually check if the current nant version is >= than the 
> version i need?
> 
> I now have this:
> 
> <property name="nant.version" value="0.85.1684.0"/>
> 
> and
> 
> <property name="nant.currentversion" value="${assembly::get-version 
> (nant::get-location())}"/>
> 
> How do i compare these two values? It looks like i could extract the 
> major, minor, build and revision numbers using the version::get-* 
> functions, but i still need some sort of string::compare function in 
> order to actually compare them...
> 
> How do i do this? (i don't see any functions in the docs which support
> this)
> 
> Thanks,
> 
> Jeroen
> 
> On Fri, 2004-08-13 at 19:06 +0200, Gert Driesen wrote:
> > ----- Original Message -----
> > From: "Jeroen Zwartepoorte" <[EMAIL PROTECTED]>
> > To: <[EMAIL PROTECTED]>
> > Sent: Friday, August 13, 2004 4:28 PM
> > Subject: [Nant-users] checking nant version
> > 
> > 
> > > Hi,
> > >
> > > Is there some example nant XML that checks that nant is actually 
> > > able to build the project in question? So "nant.version >= 
> > > 0.85-20040810" for example? So you can tell the user that he has 
> > > to upgrade his nant if he wants to build the project.
> > 
> > You can use assembly::get-version(nant::get-location()) to get the 
> > full version of NAnt.
> > 
> > > Seems very useful to me when you're using the latest stuff like 
> > > filterchains. Also prevents a lot of possible FAQ from appearing 
> > > on
> irc.
> > 
> > I agree. We'll need to think of a more generic way to accomplish
this.
> > 
> > > btw: do the nant devs hang around on irc? If so, which server and 
> > > what channel?
> > 
> > I hang around on the #mono channel on ircd.gimp.org
> > 
> > Gert
> > 
> > 
> 
> 
> 
> -------------------------------------------------------
> SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media

> 100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33 Save

> 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
> http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
> _______________________________________________
> Nant-users mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/nant-users
> 
> 



-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
_______________________________________________
Nant-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-users

Reply via email to