summaryrefslogtreecommitdiff
path: root/xmake/core/base/os.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2017-05-23 22:12:06 +0800
committerruki <[email protected]>2017-05-23 22:12:06 +0800
commita23adbdd4bf9e45589ddae31c2744e2328114b6d (patch)
treeff43be29cc08bfb55621f2dd702c8c187011e298 /xmake/core/base/os.lua
parent62cb9b70b1682156c8f8a160eb18604b2226a5b2 (diff)
add os.addenv and improve os.setenv
Diffstat (limited to 'xmake/core/base/os.lua')
-rw-r--r--xmake/core/base/os.lua22
1 files changed, 22 insertions, 0 deletions
diff --git a/xmake/core/base/os.lua b/xmake/core/base/os.lua
index 5a496b414..95ebfa79f 100644
--- a/xmake/core/base/os.lua
+++ b/xmake/core/base/os.lua
@@ -38,6 +38,7 @@ os._gid = os._gid or os.gid
os._mkdir = os._mkdir or os.mkdir
os._rmdir = os._rmdir or os.rmdir
os._tmpdir = os._tmpdir or os.tmpdir
+os._setenv = os._setenv or os.setenv
os._versioninfo = os._versioninfo or os.versioninfo
-- copy single file or directory
@@ -658,6 +659,27 @@ function os.isroot()
return os.uid().euid == 0
end
+-- set values to environment variable
+function os.setenv(name, ...)
+
+ -- get separator
+ local seperator = utils.ifelse(os.host() == "windows", ';', ':')
+
+ -- append values
+ return os._setenv(name, table.concat({...}, seperator))
+end
+
+-- add values to environment variable
+function os.addenv(name, ...)
+
+ -- get separator
+ local seperator = utils.ifelse(os.host() == "windows", ';', ':')
+
+ -- append values
+ return os.setenv(name, table.concat({...}, seperator) .. seperator .. (os.getenv(name) or ""))
+
+end
+
-- get version info
function os.versioninfo()