"Sourcing" a script's env into D?
Graham Fawcett
fawcett at uwindsor.ca
Fri Sep 30 05:52:05 PDT 2011
On Thu, 29 Sep 2011 17:20:44 -0400, Steven Schveighoffer wrote:
> On Thu, 29 Sep 2011 17:02:28 -0400, Nick Sabalausky <a at a.a> wrote:
>
>> "Graham Fawcett" <fawcett at uwindsor.ca> wrote in message
>> news:j62ido$1n0s$1 at digitalmars.com...
>>> On Thu, 29 Sep 2011 13:31:13 -0400, Nick Sabalausky wrote:
>>>
>>>> Due to process separation, the following won't work:
>>>>
>>>> script.sh:
>>>> #!/bin/sh
>>>> SOME_VAR=foobar
>>>>
>>>> test.d:
>>>> import std.process;
>>>> void main()
>>>> {
>>>> system("./script.sh");
>>>> assert(environment["SOME_VAR"] == "foobar");
>>>> }
>>>>
>>>> This, of course, is because the script is run in a totally separate
>>>> process (AIUI). The same thing happens in Windows, too.
>>>>
>>>> Is there some way to actually get the env that results from the
>>>> script? I'm looking for solutions for both Posix and Windows.
>>>
>>> What about "export SOME_VAR=foobar"?
>>>
>>>
>> Still doesn't work.
>
> This only passes the environment to children started after the export is
> done. A child process cannot affect a parent process' environment
> directly. Nor can a parent affect an already-running child.
>
Right. Sorry for the from-the-hip suggestion, I hadn't read the question
too carefully. :)
Graham
> -Steve
More information about the Digitalmars-d-learn
mailing list