diff --git a/crates/nu-command/src/system/run_external.rs b/crates/nu-command/src/system/run_external.rs index 013d3d8374..32543716f1 100644 --- a/crates/nu-command/src/system/run_external.rs +++ b/crates/nu-command/src/system/run_external.rs @@ -484,7 +484,7 @@ pub fn command_not_found( if Path::new(name).is_file() { return ShellError::ExternalCommand { label: format!("Command `{name}` not found"), - help: format!("`{name}` refers to a file that is not executable. Did you forget to to set execute permissions?"), + help: format!("`{name}` refers to a file that is not executable. Did you forget to set execute permissions?"), span, }; } diff --git a/crates/nu-protocol/src/config/hooks.rs b/crates/nu-protocol/src/config/hooks.rs index 9b9860a87d..374b3818d6 100644 --- a/crates/nu-protocol/src/config/hooks.rs +++ b/crates/nu-protocol/src/config/hooks.rs @@ -1,5 +1,6 @@ use super::prelude::*; use crate as nu_protocol; +use crate::Record; /// Definition of a parsed hook from the config object #[derive(Clone, Debug, IntoValue, PartialEq, Serialize, Deserialize)] @@ -14,14 +15,14 @@ pub struct Hooks { impl Hooks { pub fn new() -> Self { Self { - pre_prompt: None, - pre_execution: None, - env_change: None, + pre_prompt: Some(Value::list(vec![], Span::unknown())), + pre_execution: Some(Value::list(vec![], Span::unknown())), + env_change: Some(Value::record(Record::default(), Span::unknown())), display_output: Some(Value::string( "if (term size).columns >= 100 { table -e } else { table }", Span::unknown(), )), - command_not_found: None, + command_not_found: Some(Value::list(vec![], Span::unknown())), } } } diff --git a/tests/shell/pipeline/commands/external.rs b/tests/shell/pipeline/commands/external.rs index 207a94766b..172ac8cbfc 100644 --- a/tests/shell/pipeline/commands/external.rs +++ b/tests/shell/pipeline/commands/external.rs @@ -131,9 +131,9 @@ fn command_not_found_error_suggests_typo_fix() { #[test] fn command_not_found_error_recognizes_non_executable_file() { let actual = nu!("./Cargo.toml"); - assert!(actual - .err - .contains("is neither a Nushell built-in or a known external command")); + assert!(actual.err.contains( + "refers to a file that is not executable. Did you forget to set execute permissions?" + )); } #[test]