summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/config/general/app_raw.rs8
-rw-r--r--src/config/keymap/keymapping.rs2
-rw-r--r--src/config/mimetype/registry.rs9
-rw-r--r--src/config/theme/app_theme.rs8
-rw-r--r--src/error/error_kind.rs1
-rw-r--r--src/error/error_type.rs26
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,
}
}
}