35 lines
869 B
Rust
35 lines
869 B
Rust
use std::{env, path::PathBuf};
|
|
|
|
pub fn home_dir() -> Option<PathBuf> {
|
|
env::var_os("HOME").map(PathBuf::from)
|
|
}
|
|
|
|
pub fn config_dir() -> Option<PathBuf> {
|
|
// XDG first, fallback to ~/.config
|
|
if let Some(p) = env::var_os("XDG_CONFIG_HOME").map(PathBuf::from) {
|
|
Some(p)
|
|
} else {
|
|
home_dir().map(|h| h.join(".config"))
|
|
}
|
|
}
|
|
|
|
pub fn cache_dir() -> Option<PathBuf> {
|
|
// XDG first, fallback to ~/.cache
|
|
if let Some(p) = env::var_os("XDG_CACHE_HOME").map(PathBuf::from) {
|
|
Some(p)
|
|
} else {
|
|
home_dir().map(|h| h.join(".cache"))
|
|
}
|
|
}
|
|
|
|
pub fn app_config_dir() -> Option<PathBuf> {
|
|
config_dir().map(|d| d.join("cj-jftui"))
|
|
}
|
|
|
|
pub fn app_cache_dir() -> Option<PathBuf> {
|
|
cache_dir().map(|d| d.join("cj-jftui"))
|
|
}
|
|
|
|
pub fn posters_cache_dir() -> Option<PathBuf> {
|
|
app_cache_dir().map(|d| d.join("posters"))
|
|
} |