50 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			V
		
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			V
		
	
	
module os
 | 
						|
 | 
						|
$if js_node {
 | 
						|
	#global.$ENV = $process.env
 | 
						|
} $else {
 | 
						|
	#const global = $global;
 | 
						|
	#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
 | 
						|
}
 |