diff options
| author | ruki <[email protected]> | 2021-08-25 06:34:15 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2021-08-25 06:34:15 +0800 |
| commit | a483cecba3feb404388099ccc8bdb32e6382102c (patch) | |
| tree | 4def16435b92dd065fd54bf74ea8de66989e7863 /xmake/modules | |
| parent | dbd66858b8b68a784c415557e8958650e3d638c1 (diff) | |
| parent | 65cd1d83d3f61415607b8976e7b5c215b67e42a8 (diff) | |
Merge pull request #1604 from xq114/dev
improve virtualenv on linux
Diffstat (limited to 'xmake/modules')
| -rw-r--r-- | xmake/modules/private/xrepo/action/env.lua | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/xmake/modules/private/xrepo/action/env.lua b/xmake/modules/private/xrepo/action/env.lua index cb6936006..91d9317ed 100644 --- a/xmake/modules/private/xrepo/action/env.lua +++ b/xmake/modules/private/xrepo/action/env.lua @@ -285,15 +285,29 @@ function _get_env_script(envs, shell, del) elseif shell == "cmd" then prefix = "@set \"" suffix = "\"" + elseif shell:endswith("sh") then + if del then + prefix = "unset " + connector = "" + else + prefix = "export " + connector = "='" + suffix = "'" + end end + local exceptions = hashset.of("_", "PS1", "PROMPT") local ret = "" if del then for name, _ in pairs(envs) do - ret = ret .. prefix .. name .. connector .. default .. suffix .. "\n" + if not exceptions:has(name) then + ret = ret .. prefix .. name .. connector .. default .. suffix .. "\n" + end end else for name, value in pairs(envs) do - ret = ret .. prefix .. name .. connector .. value .. suffix .. "\n" + if not exceptions:has(name) then + ret = ret .. prefix .. name .. connector .. value .. suffix .. "\n" + end end end return ret @@ -303,7 +317,7 @@ end function info(key) if key == "prompt" then assert(os.isfile(os.projectfile()), "xmake.lua not found!") - print("[%s]", path.filename(os.projectdir())) + io.write("[" .. path.filename(os.projectdir()) .. "]") elseif key == "envfile" then print(os.tmpfile()) elseif key == "config" then |
