From ff742ed67549d8a2aef26d8d2edfed2b95ad609a Mon Sep 17 00:00:00 2001 From: Sam Hedin Date: Sun, 7 Jun 2020 06:55:38 +0200 Subject: [PATCH] Clippy --- crates/nu-cli/src/data/config/tests.rs | 4 ++++ .../src/env/directory_specific_environment.rs | 23 +++++++++++++------ crates/nu-cli/src/env/environment.rs | 4 ++-- 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/crates/nu-cli/src/data/config/tests.rs b/crates/nu-cli/src/data/config/tests.rs index ecbe0cb7f..ea8712fe0 100644 --- a/crates/nu-cli/src/data/config/tests.rs +++ b/crates/nu-cli/src/data/config/tests.rs @@ -16,6 +16,10 @@ impl Conf for FakeConfig { self.config.env() } + fn nu_env_dirs(&self) -> Option { + None + } + fn path(&self) -> Option { self.config.path() } diff --git a/crates/nu-cli/src/env/directory_specific_environment.rs b/crates/nu-cli/src/env/directory_specific_environment.rs index b21380906..ba7e4ee2f 100644 --- a/crates/nu-cli/src/env/directory_specific_environment.rs +++ b/crates/nu-cli/src/env/directory_specific_environment.rs @@ -60,12 +60,17 @@ impl DirectorySpecificEnvironment { new_overwritten.insert(directory.clone(), keyvals.clone()); break; } else { - working_dir = working_dir.unwrap().parent(); + working_dir = working_dir.expect("Root directory has no parent").parent(); } } if re_add_keyvals { for (k, v) in keyvals { - keyvals_to_restore.insert(k.clone(), v.to_str().unwrap().to_string()); + keyvals_to_restore.insert( + k.clone(), + v.to_str() + .expect("Filepath is not valid unicode") + .to_string(), + ); } } } @@ -86,9 +91,13 @@ impl DirectorySpecificEnvironment { if wdir == dir.as_path() { //Read the .nu file and parse it into a nice map let toml_doc = std::fs::read_to_string(wdir.join(".nu").as_path())? - .parse::() - .unwrap(); - let vars_in_current_file = toml_doc.get("env").unwrap().as_table().unwrap(); + .parse::()?; + + let vars_in_current_file = toml_doc + .get("env") + .ok_or(std::io::Error::new(std::io::ErrorKind::InvalidData, "No [env] section in .nu-file"))? + .as_table() + .ok_or(std::io::Error::new(std::io::ErrorKind::InvalidData, "Malformed [env] section in .nu-file"))?; let mut keys_in_current_nufile = vec![]; for (k, v) in vars_in_current_file { @@ -113,7 +122,7 @@ impl DirectorySpecificEnvironment { .insert(wdir.to_path_buf(), keys_in_current_nufile); break; } else { - working_dir = working_dir.unwrap().parent(); + working_dir = working_dir.expect("Root directory has no parent").parent(); } } } @@ -136,7 +145,7 @@ impl DirectorySpecificEnvironment { if &wdir == directory { return vars_to_delete; } else { - working_dir = working_dir.unwrap().parent(); + working_dir = working_dir.expect("Root directory has no parent").parent(); } } //only delete vars from directories we are not in diff --git a/crates/nu-cli/src/env/environment.rs b/crates/nu-cli/src/env/environment.rs index 53f863f2b..41e3270a6 100644 --- a/crates/nu-cli/src/env/environment.rs +++ b/crates/nu-cli/src/env/environment.rs @@ -238,7 +238,7 @@ mod tests { let fake_config = FakeConfig::new(&file); let mut actual = Environment::from_config(&fake_config); - actual.add_env("USER", "NUNO"); + actual.add_env("USER", "NUNO", false); assert_eq!( actual.env(), @@ -271,7 +271,7 @@ mod tests { let fake_config = FakeConfig::new(&file); let mut actual = Environment::from_config(&fake_config); - actual.add_env("SHELL", "/usr/bin/sh"); + actual.add_env("SHELL", "/usr/bin/sh", false); assert_eq!( actual.env(),