From ce35689d2ef4a8c6d01d11ec1a83a24c892208dc Mon Sep 17 00:00:00 2001 From: JT Date: Wed, 21 Apr 2021 11:37:10 +1200 Subject: [PATCH] Make finding the path variable more robust (#3336) * Make finding the path variable more robust * Update reload_config also --- crates/nu-engine/src/evaluation_context.rs | 24 ++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/crates/nu-engine/src/evaluation_context.rs b/crates/nu-engine/src/evaluation_context.rs index 4b939fcabc..e45cdba50e 100644 --- a/crates/nu-engine/src/evaluation_context.rs +++ b/crates/nu-engine/src/evaluation_context.rs @@ -169,7 +169,17 @@ impl EvaluationContext { let joined_paths = cfg_paths .map(|mut cfg_paths| { //existing paths are prepended to path - if let Some(env_paths) = self.scope.get_env("PATH") { + let env_paths = if let Some(env_paths) = self.scope.get_env("PATH") { + Some(env_paths) + } else if let Some(env_paths) = self.scope.get_env("Path") { + Some(env_paths) + } else if let Some(env_paths) = self.scope.get_env("path") { + Some(env_paths) + } else { + None + }; + + if let Some(env_paths) = env_paths { let mut env_paths = std::env::split_paths(&env_paths).collect::>(); //No duplicates! Remove env_paths already existing in cfg_paths env_paths.retain(|env_path| !cfg_paths.contains(env_path)); @@ -230,7 +240,17 @@ impl EvaluationContext { let joined_paths = cfg_paths .map(|mut cfg_paths| { //existing paths are prepended to path - if let Some(env_paths) = self.scope.get_env("PATH") { + let env_paths = if let Some(env_paths) = self.scope.get_env("PATH") { + Some(env_paths) + } else if let Some(env_paths) = self.scope.get_env("Path") { + Some(env_paths) + } else if let Some(env_paths) = self.scope.get_env("path") { + Some(env_paths) + } else { + None + }; + + if let Some(env_paths) = env_paths { let mut env_paths = std::env::split_paths(&env_paths).collect::>(); //No duplicates! Remove env_paths already existing in cfg_paths env_paths.retain(|env_path| !cfg_paths.contains(env_path));