diff options
-rw-r--r-- | src/config/general/app_raw.rs | 8 | ||||
-rw-r--r-- | src/config/keymap/keymapping.rs | 2 | ||||
-rw-r--r-- | src/config/mimetype/registry.rs | 9 | ||||
-rw-r--r-- | src/config/theme/app_theme.rs | 8 | ||||
-rw-r--r-- | src/error/error_kind.rs | 1 | ||||
-rw-r--r-- | src/error/error_type.rs | 26 |
6 files changed, 34 insertions, 20 deletions
diff --git a/src/config/general/app_raw.rs b/src/config/general/app_raw.rs index a3d88d9..87fdd18 100644 --- a/src/config/general/app_raw.rs +++ b/src/config/general/app_raw.rs @@ -52,6 +52,12 @@ impl From<AppConfigRaw> for AppConfig { impl TomlConfigFile for AppConfig { fn get_config(file_name: &str) -> Self { - parse_to_config_file::<AppConfigRaw, AppConfig>(file_name).unwrap_or_default() + match parse_to_config_file::<AppConfigRaw, AppConfig>(file_name) { + Ok(s) => s, + Err(e) => { + eprintln!("Failed to parse app config: {}", e); + Self::default() + } + } } } diff --git a/src/config/keymap/keymapping.rs b/src/config/keymap/keymapping.rs index b864230..baea672 100644 --- a/src/config/keymap/keymapping.rs +++ b/src/config/keymap/keymapping.rs @@ -113,7 +113,7 @@ impl TomlConfigFile for AppKeyMapping { match parse_to_config_file::<AppKeyMappingRaw, AppKeyMapping>(file_name) { Ok(s) => s, Err(e) => { - eprintln!("Failed to parse keymap: {}", e); + eprintln!("Failed to parse keymap config: {}", e); Self::default() } } diff --git a/src/config/mimetype/registry.rs b/src/config/mimetype/registry.rs index 29d194b..dbd49c1 100644 --- a/src/config/mimetype/registry.rs +++ b/src/config/mimetype/registry.rs @@ -84,7 +84,12 @@ impl From<AppProgramRegistryRaw> for AppProgramRegistry { impl TomlConfigFile for AppProgramRegistry { fn get_config(file_name: &str) -> Self { - parse_to_config_file::<AppProgramRegistryRaw, AppProgramRegistry>(file_name) - .unwrap_or_default() + match parse_to_config_file::<AppProgramRegistryRaw, AppProgramRegistry>(file_name) { + Ok(s) => s, + Err(e) => { + eprintln!("Failed to parse mimetype config: {}", e); + Self::default() + } + } } } diff --git a/src/config/theme/app_theme.rs b/src/config/theme/app_theme.rs index 6e3dfec..38c6f5a 100644 --- a/src/config/theme/app_theme.rs +++ b/src/config/theme/app_theme.rs @@ -83,7 +83,13 @@ impl AppTheme { impl TomlConfigFile for AppTheme { fn get_config(file_name: &str) -> Self { - parse_to_config_file::<AppThemeRaw, AppTheme>(file_name).unwrap_or_default() + match parse_to_config_file::<AppThemeRaw, AppTheme>(file_name) { + Ok(s) => s, + Err(e) => { + eprintln!("Failed to parse theme config: {}", e); + Self::default() + } + } } } diff --git a/src/error/error_kind.rs b/src/error/error_kind.rs index 50fbf16..a03cd13 100644 --- a/src/error/error_kind.rs +++ b/src/error/error_kind.rs @@ -13,6 +13,7 @@ pub enum JoshutoErrorKind { ParseError, ClipboardError, TomlDeError(toml::de::Error), + TrashError, Glob, diff --git a/src/error/error_type.rs b/src/error/error_type.rs index ef147b8..31ffa23 100644 --- a/src/error/error_type.rs +++ b/src/error/error_type.rs @@ -28,54 +28,50 @@ impl std::fmt::Display for JoshutoError { impl From<io::Error> for JoshutoError { fn from(err: io::Error) -> Self { + let cause = err.to_string(); Self { _kind: JoshutoErrorKind::from(err.kind()), - _cause: err.to_string(), + _cause: cause, } } } impl From<globset::Error> for JoshutoError { fn from(err: globset::Error) -> Self { + let cause = err.to_string(); Self { _kind: JoshutoErrorKind::from(err.kind()), - _cause: err.to_string(), + _cause: cause, } } } impl From<std::env::VarError> for JoshutoError { fn from(err: std::env::VarError) -> Self { + let cause = err.to_string(); Self { _kind: JoshutoErrorKind::from(err), - _cause: "Environment variable not found".to_string(), + _cause: cause, } } } impl From<trash::Error> for JoshutoError { fn from(err: trash::Error) -> Self { - let err = match err { - trash::Error::Unknown { description } => { - std::io::Error::new(std::io::ErrorKind::Other, description) - } - trash::Error::TargetedRoot => { - std::io::Error::new(std::io::ErrorKind::Other, "Targeted Root") - } - _ => std::io::Error::new(std::io::ErrorKind::Other, "Unknown Error"), - }; + let cause = err.to_string(); Self { - _kind: JoshutoErrorKind::from(err.kind()), - _cause: err.to_string(), + _kind: JoshutoErrorKind::TrashError, + _cause: cause, } } } impl From<toml::de::Error> for JoshutoError { fn from(err: toml::de::Error) -> Self { + let cause = err.to_string(); Self { _kind: JoshutoErrorKind::from(err), - _cause: "Failed to parse TOML".to_string(), + _cause: cause, } } } |