From 8c4f7749df45d8fa503d8a02ba09655c32faa863 Mon Sep 17 00:00:00 2001 From: musou1500 Date: Thu, 27 Jun 2019 20:51:03 +0900 Subject: [PATCH] add setenv, unsetenv function to os --- os/os.v | 14 ++++++++++++++ os/os_test.v | 21 +++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 os/os_test.v diff --git a/os/os.v b/os/os.v index af367f2b44..fe5caf50e7 100644 --- a/os/os.v +++ b/os/os.v @@ -316,6 +316,20 @@ pub fn getenv(key string) string { return string(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()) +} + +fn exit(code int) { + C.exit(code) +} + + // `file_exists` returns true if `path` exists. pub fn file_exists(path string) bool { res := false diff --git a/os/os_test.v b/os/os_test.v new file mode 100644 index 0000000000..21432655f4 --- /dev/null +++ b/os/os_test.v @@ -0,0 +1,21 @@ +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') == '' +} +