aboutsummaryrefslogtreecommitdiffstats
path: root/src/basedir.rs
diff options
context:
space:
mode:
authorJonas Maier <jonas@x77.dev>2026-05-14 17:12:18 +0200
committerJonas Maier <jonas@x77.dev>2026-05-14 17:12:18 +0200
commit2acae17fc235dce288c186d04b4f0750bdecc198 (patch)
treea84dff3243ce9ca9dab65a346710f6ad1af1844d /src/basedir.rs
parentce0870e592f1b0c186f72f888c69fcddad5a2c9d (diff)
downloadpish-2acae17fc235dce288c186d04b4f0750bdecc198.tar.gz
automatically set XDG_ variables for child processes
Diffstat (limited to 'src/basedir.rs')
-rw-r--r--src/basedir.rs12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/basedir.rs b/src/basedir.rs
index d2ede87..3589b71 100644
--- a/src/basedir.rs
+++ b/src/basedir.rs
@@ -14,30 +14,36 @@ pub fn home() -> PathBuf {
pub mod xdg {
use super::*;
+ pub const DATA_HOME: &str = "XDG_DATA_HOME";
+
/// $XDG_DATA_HOME defines the base directory relative to which user-specific data files should be stored.
/// If $XDG_DATA_HOME is either not set or empty, a default equal to $HOME/.local/share should be used.
pub fn data_home() -> PathBuf {
- if let Some(dir) = env::var_os("XDG_DATA_HOME") {
+ if let Some(dir) = env::var_os(DATA_HOME) {
PathBuf::from(dir)
} else {
home().join(".local/share")
}
}
+ pub const CONFIG_HOME: &str = "XDG_CONFIG_HOME";
+
/// $XDG_CONFIG_HOME defines the base directory relative to which user-specific configuration files should be stored.
/// If $XDG_CONFIG_HOME is either not set or empty, a default equal to $HOME/.config should be used.
pub fn config_home() -> PathBuf {
- if let Some(dir) = env::var_os("XDG_CONFIG_HOME") {
+ if let Some(dir) = env::var_os(CONFIG_HOME) {
PathBuf::from(dir)
} else {
home().join(".config")
}
}
+ pub const STATE_HOME: &str = "XDG_STATE_HOME";
+
/// $XDG_STATE_HOME defines the base directory relative to which user-specific state files should be stored.
/// If $XDG_STATE_HOME is either not set or empty, a default equal to $HOME/.local/state should be used.
pub fn state_home() -> PathBuf {
- if let Some(dir) = env::var_os("XDG_STATE_HOME") {
+ if let Some(dir) = env::var_os(STATE_HOME) {
PathBuf::from(dir)
} else {
home().join(".local/state")