OK, so I want to create a native app to read some environment variables, and based on some business logic, change the value of them to something else. I decided to do it in Kotlin.
I managed to find out how to change the system environment variable, by creating the functions:
fun call(arg: String) = platform.posix.system(command)
fun setEnvironmentVariable(variable: String, value: String) {
println("Changing value of $variable to $value")
call("SETX $variable $value")
}
But it only changes the value. I would like to store it in a Kotlin variable and do some manipulations on it.
Issuing the statement call("SET $variable") prints the value to the command prompt, but I cant figure out how to capture it from Kotlin. I guess if there was a way to extract the output from command prompt to a String that would make it easier, even though Windows outputs it on the form myvariable=myvalue instead of just the value.
Thanks in advance
"echo %$variable%"
instead of theSET
command. That way you won't get the variable=value pattern, but just the value itself. You'll also have to redirect stdout to the Kotlin process somehow. But probably you're better off using interop with C, then you can use C'sgetenv()
call. – Afterglow