summaryrefslogtreecommitdiff
path: root/xmake/modules
diff options
context:
space:
mode:
authorruki <[email protected]>2021-08-25 06:34:15 +0800
committerGitHub <[email protected]>2021-08-25 06:34:15 +0800
commita483cecba3feb404388099ccc8bdb32e6382102c (patch)
tree4def16435b92dd065fd54bf74ea8de66989e7863 /xmake/modules
parentdbd66858b8b68a784c415557e8958650e3d638c1 (diff)
parent65cd1d83d3f61415607b8976e7b5c215b67e42a8 (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.lua20
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