From d9e68409726d4a0da7792db6fed778f28026585a Mon Sep 17 00:00:00 2001 From: sigoden Date: Thu, 26 Sep 2024 08:53:56 +0800 Subject: feat: respect XDG_CONFIG_HOME for placing config dir (#889) --- src/config/mod.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/config') diff --git a/src/config/mod.rs b/src/config/mod.rs index a5ced25..4aa0873 100644 --- a/src/config/mod.rs +++ b/src/config/mod.rs @@ -247,13 +247,13 @@ impl Config { } pub fn config_dir() -> Result { - let env_name = get_env_name("config_dir"); - let path = if let Some(v) = env::var_os(env_name) { + let path = if let Ok(v) = env::var(get_env_name("config_dir")) { PathBuf::from(v) + } else if let Ok(v) = env::var("XDG_CONFIG_HOME") { + PathBuf::from(v).join(env!("CARGO_CRATE_NAME")) } else { - let mut dir = dirs::config_dir().ok_or_else(|| anyhow!("Not found config dir"))?; - dir.push(env!("CARGO_CRATE_NAME")); - dir + let dir = dirs::config_dir().ok_or_else(|| anyhow!("Not available config dir"))?; + dir.join(env!("CARGO_CRATE_NAME")) }; Ok(path) } -- cgit v1.2.3