add `unsetenv`, `setenv`, `clearenv` to os module (#583)

pull/1049/head
musou1500 2019-06-27 09:24:09 +09:00 committed by Alexander Medvednikov
parent 9ac653c3e3
commit 6cb5eee1b2
2 changed files with 44 additions and 0 deletions

18
os/os.v
View File

@ -316,6 +316,24 @@ pub fn getenv(key string) string {
return tos2(s)
}
pub fn setenv(name string, value string, overwrite bool) int {
return C.setenv(name.cstr(), value.cstr(), overwrite)
}
pub fn unsetenv(name string) int {
return C.unsetenv(name.cstr())
}
pub fn clearenv() {
C.clearenv()
}
fn exit(code int) {
C.exit(code)
}
// `file_exists` returns true if `path` exists.
pub fn file_exists(path string) bool {
res := false

26
os/os_test.v 100644
View File

@ -0,0 +1,26 @@
import os
fn test_setenv() {
os.setenv('foo', 'bar', true)
assert os.getenv('foo') == 'bar'
// `setenv` should not set if `overwrite` is false
os.setenv('foo', 'bar2', false)
assert os.getenv('foo') == 'bar'
// `setenv` should overwrite if `overwrite` is true
os.setenv('foo', 'bar2', true)
assert os.getenv('foo') == 'bar2'
}
fn test_unsetenv() {
os.setenv('foo', 'bar', true)
os.unsetenv('foo')
assert os.getenv('foo') == ''
}
fn test_clearenv() {
os.setenv('foo', 'bar', true)
os.clearenv()
assert os.getenv('foo') == ''
}