1use once_cell::sync::Lazy;
2use std::path::PathBuf;
3
4pub use std::env::*;
5
6pub static HOME: Lazy<PathBuf> = Lazy::new(|| {
7 var_os("HOME")
8 .map(PathBuf::from)
9 .unwrap_or_else(|| PathBuf::from("/tmp"))
10});
11pub static XDG_CACHE_HOME: Lazy<PathBuf> = Lazy::new(|| {
12 var_os("XDG_CACHE_HOME")
13 .map(PathBuf::from)
14 .unwrap_or_else(|| HOME.join(".cache"))
15});
16pub static CACHE_DIR: Lazy<PathBuf> = Lazy::new(|| XDG_CACHE_HOME.join("usage"));
17
18pub fn var_true(key: &str) -> bool {
19 matches!(var(key), Ok(v) if v == "1" || v == "true")
20}