use std::{env, path::PathBuf}; pub fn home_dir() -> Option { env::var_os("HOME").map(PathBuf::from) } pub fn config_dir() -> Option { // 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 { // 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 { config_dir().map(|d| d.join("cj-jftui")) } pub fn app_cache_dir() -> Option { cache_dir().map(|d| d.join("cj-jftui")) } pub fn posters_cache_dir() -> Option { app_cache_dir().map(|d| d.join("posters")) }