summaryrefslogtreecommitdiff
path: root/xmake/core/base/os.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2019-04-27 00:02:50 +0800
committerruki <[email protected]>2019-04-26 18:17:00 +0800
commit6e34dd3a9f72eb9c7743b1eebb10f7fbc5996025 (patch)
treef89a7bc61fb1fa692651867ba6ed627f441035f3 /xmake/core/base/os.lua
parent695a5e99906bbf0c4f11b68c9339222af3ebfb7d (diff)
add os.getenvs
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 b69dd1754..ee0404971 100644
--- a/xmake/core/base/os.lua
+++ b/xmake/core/base/os.lua
@@ -36,6 +36,7 @@ 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._getenvs = os._getenvs or os.getenvs
os._readlink = os._readlink or os.readlink
-- copy single file or directory
@@ -899,6 +900,22 @@ function os.fscase()
return os._FSCASE
end
+-- get all current environment variables
+function os.getenvs()
+ local envs = {}
+ for _, line in ipairs(os._getenvs()) do
+ local p = line:find('=', 1, true)
+ if p then
+ local key = line:sub(1, p - 1):trim()
+ local values = line:sub(p + 1):trim()
+ if #key > 0 then
+ envs[key] = values
+ end
+ end
+ end
+ return envs
+end
+
-- set values to environment variable
function os.setenv(name, ...)
local seperator = os.host() == "windows" and ';' or ':'