Thanks for the comments, it is always nice for people to check the code - I mentioned that this patch was the one that I was a little worried about.
And thanks to you for all the work in BugZilla! Impressive!!!
1) The code does not export the lower case version of the env variable that the user passed in, the lower case version is only used for comparision purposes.
Cool. I can't look at the whole code right now, so was only going by the diff. I know that the app that produces these emails includes a link to online diffs when they are too large, instead of inline in the mail, but having a link all the time would be valuable IMHO.
<echo>Path is ${env.PATH}</echo>
In my experience, this is likely to fail to display the Path, since it may not be spelled PATH, but Path, or path, etc... That's why I had a custom <binaryConfig> task that loaded the name and value of the path in two ptys: os.path.name and os.path. Allowed me to write cross-platform builds much more easily. That task defined other ptys like os.libpath.name and os.libpath, etc... For example, on Windows, os.libpath.name contained "Path" (or "PATH", or whatever the current form of this guy), but on Linux it was LD_LIBRARY_PATH.
The one thing that is infurating is that "Path" can be "PATH" or "path" or whatever is the whim of the windows machine, and it is difficult to write an ant script that work correctly when using <property environment="env"/>,
I know. That's why I created that <binaryConfig> task.
perhaps we could provide a touppercase=yes/no option to <property environment="env">, or provide a "${getenv:} prefix to ${} expansion to correspond to java(1.1-, 5+) System.getenv(key).
Why not. That could be handy. We have yet to officialize and document this mechanism though, no?
Note that getenv() is case-insensitive: <target name="beanshell"> <script language="beanshell"> System.out.println(System.getenv ("pAth")); </script> </target>
Didn't know that.
One change that could be made would be to ignore the casiness of the key in the <env key=""> and use the casiness of the key in the current env, it is present.
Yes, this would correspond precisely to what I was doing. I'm +1 to this. I was using for example, to prepend ${basedir}/bin to the path, the following code: <env key="${os.path.name}" path="${basedir}/bin;${os.path}" /> It doesn't solve though the case (upper or lower, or mix) with which you must refer to the var using the ${env.xyz} property notation. Unless we add an attribute to <property env>, as you mention, to force the names to lower or upper case. (combined with the change you described above. The two are be linked). Otherwise you can't know whether to use ${env.PATH} or ${env.Path}, etc... --DD --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]