diff --git a/e2e/cli/test_exec_chdir b/e2e/cli/test_exec_chdir index 889d6b046a..3046b7b70a 100644 --- a/e2e/cli/test_exec_chdir +++ b/e2e/cli/test_exec_chdir @@ -5,3 +5,5 @@ mkdir direnv assert "mise x -C $PWD/direnv -- pwd" "$(pwd)/direnv" assert "mise x -C ./direnv -- pwd" "$(pwd)/direnv" assert "mise x -C direnv -- pwd" "$(pwd)/direnv" + +assert_fail "mise x -C non-existent -- pwd" "mise ERROR failed to set current directory to ~/workdir/non-existent" diff --git a/src/config/settings.rs b/src/config/settings.rs index b24960f0d1..4edbbe7110 100644 --- a/src/config/settings.rs +++ b/src/config/settings.rs @@ -1,8 +1,8 @@ use crate::cli::Cli; use crate::config::ALL_TOML_CONFIG_FILES; -use crate::duration; use crate::file::FindUp; use crate::{dirs, env, file}; +use crate::{duration, exit}; #[allow(unused_imports)] use confique::env::parse::{list_by_colon, list_by_comma}; use confique::{Config, Partial}; @@ -100,7 +100,13 @@ pub struct SettingsFile { impl Settings { pub fn get() -> Arc { - Self::try_get().unwrap() + match Self::try_get() { + Ok(settings) => settings, + Err(e) => { + error!("{e}"); + exit(1); + } + } } pub fn try_get() -> Result> { if let Some(settings) = BASE_SETTINGS.read().unwrap().as_ref() {