summaryrefslogtreecommitdiff
path: root/xmake/core/base/os.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2021-04-13 22:42:22 +0800
committerruki <[email protected]>2021-04-13 22:42:22 +0800
commit84b64c4ecffe6ed4a498efa8116271ecba78e52d (patch)
tree4f03fff7f04d6fd648b9bfce26348463b4bc7423 /xmake/core/base/os.lua
parent317745583da0e5c940f6e300c5f6163eb800efbf (diff)
improve envs
Diffstat (limited to 'xmake/core/base/os.lua')
-rw-r--r--xmake/core/base/os.lua17
1 files changed, 17 insertions, 0 deletions
diff --git a/xmake/core/base/os.lua b/xmake/core/base/os.lua
index f9444d4b3..44b373a66 100644
--- a/xmake/core/base/os.lua
+++ b/xmake/core/base/os.lua
@@ -998,6 +998,23 @@ function os.getenvs()
return envs
end
+-- set all current environment variables
+function os.setenvs(envs)
+ if envs then
+ -- remove new added values
+ local curenvs = os.getenvs()
+ for name, _ in pairs(curenvs) do
+ if not envs[name] then
+ os.setenv(name, nil)
+ end
+ end
+ -- change values
+ for name, values in pairs(envs) do
+ os.setenv(name, values)
+ end
+ end
+end
+
-- set values to environment variable
function os.setenv(name, ...)
local values = {...}