mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
1aaac13a60
* Improve documentation of v.util.Surrounder * Remove `os` from the list of "no auto free" `builtin` mods * Fix -autofree freeing of `const x = []string{}`. * Add a valgrind regression test. * Implement os.getenv_opt in vlib/os/environment.js.v too.
49 lines
1.0 KiB
V
49 lines
1.0 KiB
V
module os
|
|
|
|
$if js_node {
|
|
#global.$ENV = $process.env
|
|
} $else {
|
|
#global.$ENV = {}
|
|
}
|
|
|
|
// setenv sets the value of an environment variable with `name` to `value`.
|
|
pub fn setenv(key string, val string, overwrite bool) {
|
|
#if ($ENV[key] && !(overwrite.valueOf())) return;
|
|
#$ENV[key] = val + '';
|
|
}
|
|
|
|
// `getenv` returns the value of the environment variable named by the key.
|
|
pub fn getenv(key string) string {
|
|
mut res := ''
|
|
#if ($ENV[key]) res = new string($ENV[key])
|
|
|
|
return res
|
|
}
|
|
|
|
// `getenv_opt` returns the value of the environment variable named by the key.
|
|
// If such an environment variable does not exist, then it returns `none`.
|
|
pub fn getenv_opt(key string) ?string {
|
|
#if (!$ENV[key]) return none__;
|
|
|
|
mut res := ''
|
|
#if ($ENV[key]) res = new string($ENV[key]);
|
|
|
|
return res
|
|
}
|
|
|
|
// unsetenv clears an environment variable with `name`.
|
|
pub fn unsetenv(name string) int {
|
|
#$ENV[name] = ""
|
|
|
|
return 1
|
|
}
|
|
|
|
pub fn environ() map[string]string {
|
|
mut res := map[string]string{}
|
|
#for (const key in $ENV) {
|
|
#res.map.set(key,$ENV[key])
|
|
#}
|
|
|
|
return res
|
|
}
|