diff --git a/crates/nu-cli/src/env/environment.rs b/crates/nu-cli/src/env/environment.rs index e7a60368e9..15f39a6755 100644 --- a/crates/nu-cli/src/env/environment.rs +++ b/crates/nu-cli/src/env/environment.rs @@ -64,12 +64,12 @@ impl Environment { self.remove_env(&k); }); - // self.direnv - // .overwritten_values_to_restore()? - // .iter() - // .for_each(|(k, v)| { - // self.add_env(&k, &v.to_string_lossy(), true); - // }); + self.direnv + .overwritten_values_to_restore()? + .iter() + .for_each(|(k, v)| { + self.add_env(&k, &v.to_string_lossy(), true); + }); self.direnv.env_vars_to_add()?.iter().for_each(|(k, v)| { self.add_env(&k, &v.to_string_lossy(), true); @@ -85,14 +85,6 @@ impl Environment { }) = self.environment_vars { - let mut file = OpenOptions::new() - .write(true) - .append(true) - .create(true) - .open("delete.txt") - .unwrap(); - - write!(&mut file, "deleting: {:?}\n", key).unwrap(); envs.entries.remove(key); std::env::remove_var(key); }; diff --git a/crates/nu-cli/src/env/environment_syncer.rs b/crates/nu-cli/src/env/environment_syncer.rs index fbcd72e6a6..7c378ea47e 100644 --- a/crates/nu-cli/src/env/environment_syncer.rs +++ b/crates/nu-cli/src/env/environment_syncer.rs @@ -44,6 +44,7 @@ impl EnvironmentSyncer { pub fn sync_env_vars(&mut self, ctx: &mut Context) { let mut environment = self.env.lock(); + environment.maintain_directory_environment().ok(); if environment.env().is_some() { for (name, value) in ctx.with_host(|host| host.vars()) { if name != "path" && name != "PATH" { @@ -51,7 +52,6 @@ impl EnvironmentSyncer { // that aren't loaded from config. environment.add_env(&name, &value, false); - environment.maintain_directory_environment().ok(); // clear the env var from the session // we are about to replace them