Re: Changing Environment Paths using D language's Phobos Library

2019-06-29 Thread Paul Backus via Digitalmars-d-learn

On Saturday, 29 June 2019 at 09:50:12 UTC, BoQsc wrote:

The correct syntax is:
environment.opIndexAssign("Some Random Value Here", 
"variableName");


And not this one:
environment.opIndexAssign("variableName", "Some Random Value 
Here");


Note that opIndexAssign is an operator overload [1], so you can 
also write it like this:


environment["variableName"] = "Some Random Value Here";

[1] 
https://dlang.org/spec/operatoroverloading.html#index_assignment_operator




Re: Changing Environment Paths using D language's Phobos Library

2019-06-29 Thread Adam D. Ruppe via Digitalmars-d-learn

On Saturday, 29 June 2019 at 10:01:35 UTC, BoQsc wrote:
Are not accessible in Windows 10 settings, at all, as far as I 
see now.

Is that suppose to be that way?


A program can only modify its own environment variables. These 
modifications are passed to its children, but not back up to its 
parents.


Any changes you make will not be saved by the operating system 
since that is a parent of your program instead of its children.



if you do wanna make permanent changes i believe that means 
poking the registry and requires associated permissions.


Re: Changing Environment Paths using D language's Phobos Library

2019-06-29 Thread BoQsc via Digitalmars-d-learn

On Saturday, 29 June 2019 at 09:50:12 UTC, BoQsc wrote:

On Saturday, 29 June 2019 at 09:28:03 UTC, BoQsc wrote:
I checked the documentation and it seems that, you assumed the 
wrong syntax for "environment.opIndexAssign()"


The correct syntax is:
environment.opIndexAssign("Some Random Value Here", 
"variableName");


And not this one:
environment.opIndexAssign("variableName", "Some Random Value 
Here");



Take a look at this documentation once more:
https://dlang.org/library/std/process/environment.op_index_assign.html


You are absolutely correct, however, it seems that these new 
variables that we create by using
environment.opIndexAssign("Some Random Value Here", 
"variableName");



Are not accessible in Windows 10 settings, at all, as far as I 
see now.

Is that suppose to be that way?

I tried to open command prompt and the environment variable that 
we just created using D lang Phobos "opIndexAssign()" function 
seems to be not accessible nor created.


What is happening, does anyone know?


Re: Changing Environment Paths using D language's Phobos Library

2019-06-29 Thread BoQsc via Digitalmars-d-learn

On Saturday, 29 June 2019 at 09:28:03 UTC, BoQsc wrote:


However, setting the variable via "environment.opIndexAssign" 
seems to not work.

What should we do?
I don't know.


I'm glad I'm on this forum, I know exactly what you did wrong mr. 
BoQsc


I checked the documentation and it seems that, you assumed the 
wrong syntax for "environment.opIndexAssign()"


The correct syntax is:
environment.opIndexAssign("Some Random Value Here", 
"variableName");


And not this one:
environment.opIndexAssign("variableName", "Some Random Value 
Here");



Take a look at this documentation once more:
https://dlang.org/library/std/process/environment.op_index_assign.html


import std.stdio   : writeln;
import std.array   : replace;
import std.process : environment;

void main(){
	// Retrieve environment variable "path" for testing if it is 
possible

// to retrieve it by using D language Phobos Library
auto environmentPaths = environment.get("path");
	writeln(environmentPaths); // Works as expected: we can see the 
output of Paths.


	// Create a new Environement variable for testing if it is 
possible

// to Create it with D language Phobos Library
	environment.opIndexAssign("Some Random Value Here", 
"variableName");

auto environmentalVariable = environment.get("variableName");
	writeln(environmentalVariable); //Unexpected: absolutely no 
output.

}


Changing Environment Paths using D language's Phobos Library

2019-06-29 Thread BoQsc via Digitalmars-d-learn
I would like to remove/add/change Environment Paths using D 
language's Phobos.

https://en.wikipedia.org/wiki/PATH_(variable)

I saw in the documentation that there is a class file 
"std.process : environment" that has the supposed ability to 
minipulate environment variables.

https://dlang.org/library/std/process/environment.html

I couldn't find a good documentation on how to search and replace 
strings using Phobos Library. However it seems that it might be 
possbile by importing "std.array : replace" function.

https://forum.dlang.org/post/jnua50$1e4a$1...@digitalmars.com
https://dlang.org/library/std/array/replace.html

So, here we are, testing if it is possible to retrieve and set 
the Environmental Variables.



import std.stdio   : writeln;
import std.array   : replace;
import std.process : environment;

void main(){


	// Retrieve environment variable "path" for testing if it is 
possible

// to retrieve it by using D language Phobos Library
auto environmentPaths = environment.get("path");
	writeln(environmentPaths); // Works as expected: we can see the 
output of Paths.


	// Create a new Environement variable for testing if it is 
possible

// to Create it with D language Phobos Library
	environment.opIndexAssign("variableName", "Some Random Value 
Here");

auto environmentalVariable = environment.get("variableName");
	writeln(environmentalVariable); //Unexpected: absolutely no 
output.





Alright, now that we see it is possible to retrieve environmental 
variable, that's great.


However, setting the variable via "environment.opIndexAssign" 
seems to not work.

What should we do?
I don't know.