diff options
| author | ruki <[email protected]> | 2017-05-23 22:12:06 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2017-05-23 22:12:06 +0800 |
| commit | a23adbdd4bf9e45589ddae31c2744e2328114b6d (patch) | |
| tree | ff43be29cc08bfb55621f2dd702c8c187011e298 | |
| parent | 62cb9b70b1682156c8f8a160eb18604b2226a5b2 (diff) | |
add os.addenv and improve os.setenv
| -rw-r--r-- | xmake/core/base/os.lua | 22 | ||||
| -rw-r--r-- | xmake/core/sandbox/modules/os.lua | 18 |
2 files changed, 36 insertions, 4 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() diff --git a/xmake/core/sandbox/modules/os.lua b/xmake/core/sandbox/modules/os.lua index 03943072d..083181c00 100644 --- a/xmake/core/sandbox/modules/os.lua +++ b/xmake/core/sandbox/modules/os.lua @@ -423,7 +423,7 @@ function sandbox_os.raise(msg, ...) os.raise(msg, ...) end --- get the envirnoment variables +-- get values of the envirnoment variable function sandbox_os.getenv(name) -- check @@ -433,14 +433,24 @@ function sandbox_os.getenv(name) return os.getenv(name) end --- set the envirnoment variables -function sandbox_os.setenv(name, values) +-- set values to the envirnoment variable +function sandbox_os.setenv(name, ...) -- check assert(name) -- set it - os.setenv(name, values) + os.setenv(name, ...) +end + +-- add values to the envirnoment variable +function sandbox_os.addenv(name, ...) + + -- check + assert(name) + + -- add it + os.addenv(name, ...) end -- make a new uuid |
