diff options
| author | Jonas Maier <> | 2026-03-06 14:29:41 +0100 |
|---|---|---|
| committer | Jonas Maier <> | 2026-03-06 14:29:41 +0100 |
| commit | e6831f59011128e10be2e84f1da6a56fe0416652 (patch) | |
| tree | 663cedceb5bf558b4ca19d9a5eb50b1bc6ffdef2 /src/basedir.rs | |
| parent | 8e822ae856a0ae49e530c95ad7a6dc2812bfb837 (diff) | |
| download | pish-e6831f59011128e10be2e84f1da6a56fe0416652.tar.gz | |
create config and data dir
Diffstat (limited to 'src/basedir.rs')
| -rw-r--r-- | src/basedir.rs | 31 |
1 files changed, 31 insertions, 0 deletions
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() + } +} |
