Gert Driesen wrote:
> 
> Helmut,
> 
> Properties are case-sensitive, and the case of the environment variables
> differs from system to system, so there's isn't much we can do about this.
> 
> We recommend using the environment functions, and consider deprecating the
> <sysinfo> task :
> 
> http://nant.sourceforge.net/nightly/latest/help/tasks/sysinfo.html
> 
> Hope this helps,
> 
> Gert
> 
> > -----Original Message-----
> > From: [EMAIL PROTECTED]
> > [mailto:[EMAIL PROTECTED] On Behalf Of
> > Helmut Dipper
> > Sent: dinsdag 21 december 2004 13:07
> > To: [email protected]
> > Subject: [Nant-users] inconsistence between
> > environment::variable-exists and sysinfo
> >
> > Hello,
> >
> > in NAnt 0.85-rc1 following inconsistence exists:
> > environment::variable-exists delivers "true" for
> > both 'SystemRoot' and 'SYSTEMROOT' (case-insensitive?)
> > but task sysinfo defines sys.env.SystemRoot or (exclusive)
> > sys.env.SYSTEMROOT dependend on the environment:
> > in a DOS-shell environment sys.env.SystemRoot is defined
> > in a cygwin-bash environment sys.env.SYSTEMROOT is defined.
> > For proof execute
> >    <if test="${environment::variable-exists('SystemRoot')}">
> >       <echo message="env-var 'SystemRoot' exists"/>
> >    </if>
> >    <if test="${environment::variable-exists('SYSTEMROOT')}">
> >       <echo message="env-var 'SYSTEMROOT' exists"/>
> >    </if>
> >    <if test="${property::exists('sys.env.SystemRoot')}">
> >       <echo message="property 'sys.env.SystemRoot' exists"/>
> >    </if>
> >    <if test="${property::exists('sys.env.SYSTEMROOT')}">
> >       <echo message="property 'sys.env.SYSTEMROOT' exists"/>
> >    </if>
> >
> > So although environment::variable-exists('SYSTEMROOT')
> > delivers "true", after task sysinfo property sys.env.SYSTEMROOT
> > may be NOT DEFINED.
> >
> > Workaround to be inserted after <sysinfo/>:
> >    <if test="${property::exists('sys.env.SystemRoot') and not
> > property::exists('sys.env.SYSTEMROOT')}">
> >       <property name="sys.env.SYSTEMROOT"
> > value="${sys.env.SystemRoot}"/>
> >    </if>
> >    <if test="${property::exists('sys.env.SYSTEMROOT') and not
> > property::exists('sys.env.SystemRoot')}">
> >       <property name="sys.env.SystemRoot"
> > value="${sys.env.SYSTEMROOT}"/>
> >    </if>

Gert,

property-names are case-sensitive but the argument
for the function environment::variable-exists seem to
be case-insensitive: both calls in the 'proof' deliver
"true" independent from the environment although for
both environments the list of environment variables
contains either "SystemRoot" or "SYSTEMROOT".
That is the reason for the inconsistency.

Best regards
Helmut Dipper

-- 
Helmut Dipper | AED-SICAD Aktiengesellschaft


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now. 
http://productguide.itmanagersjournal.com/
_______________________________________________
Nant-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/nant-users

Reply via email to