From e6831f59011128e10be2e84f1da6a56fe0416652 Mon Sep 17 00:00:00 2001 From: Jonas Maier <> Date: Fri, 6 Mar 2026 14:29:41 +0100 Subject: create config and data dir --- src/basedir.rs | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/basedir.rs (limited to 'src/basedir.rs') diff --git a/src/basedir.rs b/src/basedir.rs new file mode 100644 index 0000000..e5bcff7 --- /dev/null +++ b/src/basedir.rs @@ -0,0 +1,31 @@ +use std::{env, path::PathBuf}; + +const NAME: &str = env!("CARGO_PKG_NAME"); + +pub fn home() -> PathBuf { + if let Ok(home) = env::var("HOME") { + PathBuf::from(home) + } else { + PathBuf::new() + } +} + +fn alt_dir() -> PathBuf { + PathBuf::from(format!("{}/.{}", home().to_string_lossy(), NAME)) +} + +pub fn data_dir() -> PathBuf { + if let Ok(base) = env::var("XDG_DATA_HOME") { + PathBuf::from(base).join(NAME) + } else { + alt_dir() + } +} + +pub fn config_dir() -> PathBuf { + if let Ok(base) = env::var("XDG_CONFIG_HOME") { + PathBuf::from(base).join(NAME) + } else { + alt_dir() + } +} -- cgit v1.2.3