From 70f242f8f66ec3072c84c7882fb20b09c6293e6b Mon Sep 17 00:00:00 2001 From: emma Date: Sat, 15 Apr 2023 16:25:20 -0400 Subject: [PATCH] fall back to $HOME/.config and $HOME/.local/share --- src/config.rs | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/config.rs b/src/config.rs index bd0cc5d..38e89f6 100644 --- a/src/config.rs +++ b/src/config.rs @@ -48,16 +48,28 @@ impl Default for Config { pub fn get_config_dir() -> PathBuf { std::env::var_os("XDG_CONFIG_HOME") .map(PathBuf::try_from) - .expect("$XDG_CONFIG_HOME is unset") - .unwrap() + .expect("$XDG_CONFIG_HOME is unset.") + .unwrap_or_else(|_| { + std::env::var_os("HOME") + .map(PathBuf::try_from) + .expect("User has no $HOME.") + .unwrap() + .join(".config") + }) .join("breed") } pub fn get_data_dir() -> PathBuf { std::env::var_os("XDG_DATA_HOME") .map(PathBuf::try_from) - .expect("$XDG_DATA_HOME is unset") - .unwrap() + .expect("$XDG_DATA_HOME is unset.") + .unwrap_or_else(|_| { + std::env::var_os("HOME") + .map(PathBuf::try_from) + .expect("User has no $HOME.") + .unwrap() + .join(".local/share") + }) .join("breed") }