diff options
Diffstat (limited to 'src/basedir.rs')
| -rw-r--r-- | src/basedir.rs | 12 |
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") |
