use std::path::PathBuf;
pub fn cache_dir() -> Option<PathBuf> {
let ns = aube_util::embedder().cache_namespace;
if let Some(xdg) = aube_util::env::xdg_cache_home() {
return Some(xdg.join(ns));
}
#[cfg(windows)]
if let Ok(local) = std::env::var("LOCALAPPDATA") {
return Some(PathBuf::from(local).join(ns));
}
aube_util::env::home_dir().map(|h| h.join(".cache").join(ns))
}
pub fn global_links_dir() -> Option<PathBuf> {
cache_dir().map(|d| d.join("global-links"))
}
pub fn store_dir() -> Option<PathBuf> {
let ns = aube_util::embedder().data_namespace;
#[cfg(windows)]
if let Ok(local) = std::env::var("LOCALAPPDATA") {
return Some(PathBuf::from(local).join(ns).join("store/v1/files"));
}
let data_home = match aube_util::env::xdg_data_home() {
Some(xdg) => xdg,
None => aube_util::env::home_dir()?.join(".local/share"),
};
Some(data_home.join(ns).join("store/v1/files"))
}