use std::fs;
use std::path::PathBuf;
pub fn get_cache_dir() -> PathBuf {
dirs::cache_dir()
.unwrap_or_else(|| PathBuf::from("/tmp"))
.join("devtool")
}
pub fn ensure_cache_dir() -> Result<PathBuf, std::io::Error> {
let cache_dir = get_cache_dir();
fs::create_dir_all(&cache_dir)?;
let subdirs = ["homebrew", "rustup", "mise", "feedback"];
for subdir in &subdirs {
let subdir_path = cache_dir.join(subdir);
fs::create_dir_all(&subdir_path)?;
}
Ok(cache_dir)
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_get_cache_dir() {
let cache_dir = get_cache_dir();
assert!(cache_dir.to_string_lossy().contains("devtool"));
}
}