diff --git a/virtual_environments/conda.nu b/virtual_environments/conda.nu index 70e477c..e273276 100644 --- a/virtual_environments/conda.nu +++ b/virtual_environments/conda.nu @@ -2,7 +2,7 @@ def conda-env [env-name] { let conda-info = (conda info --envs --json | from json) let suffix = (if $env-name == "base" {""} else {(["envs" $env-name] | path join)}) let env-dir = ([$conda-info.root_prefix $suffix] | path join) - let old-path = ($env.PATH | str collect (path-sep)) + let old-path = ((system-path) | str collect (path-sep)) let new-path = (if (windows?) { (conda-create-path-windows $env-dir) } else { (conda-create-path-unix $env-dir) }) let new-env = { CONDA_DEFAULT_ENV: $env-name @@ -15,8 +15,7 @@ def conda-env [env-name] { } def conda-create-path-windows [env-dir] { - # 1. Conda on Windows needs a few additional Path elements - # 2. The path env var on Windows is called Path (not PATH) + # Conda on Windows needs a few additional Path elements let env-path = [ $env-dir ([$env-dir "Scripts"] | path join) @@ -24,7 +23,7 @@ def conda-create-path-windows [env-dir] { ([$env-dir "Library" "bin"] | path join) ([$env-dir "Library" "usr" "bin"] | path join) ] - let new-path = ([$env-path $env.PATH] | flatten | str collect (path-sep)) + let new-path = ([$env-path (system-path)] | flatten | str collect (path-sep)) { PATH: $new-path } @@ -40,10 +39,15 @@ def conda-create-path-unix [env-dir] { } } + def windows? [] { (sys).host.name == "Windows" } +def system-path [] { + if "PATH" in (env).name { $env.PATH } else { $env.Path } +} + def path-sep [] { if (windows?) { ";" } else { ":" } } diff --git a/virtual_environments/conda_deactivate.nu b/virtual_environments/conda_deactivate.nu index f1fcbce..9debed2 100644 --- a/virtual_environments/conda_deactivate.nu +++ b/virtual_environments/conda_deactivate.nu @@ -1,4 +1,4 @@ -let path-name = (if ((sys).host.name == "Windows") { "Path" } else { "PATH" }) +let path-name = (if "PATH" in (env).name { "PATH" } else { "Path" }) let-env $path-name = $env.CONDA_OLD_PATH hide CONDA_PROMPT_MODIFIER hide CONDA_PREFIX