Deletion almost works

This commit is contained in:
Sam Hedin 2020-06-15 18:21:27 +02:00
parent 6a0b4d1122
commit 28f01e92b7
2 changed files with 7 additions and 15 deletions

View File

@ -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);
};

View File

@ -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