use crate::error::{Error, Result};
use std::fs;
use std::path::PathBuf;
pub fn upgrade_cache_dir() -> Result<PathBuf> {
let project_dirs = directories::ProjectDirs::from("", "", "ant").ok_or_else(|| {
Error::Upgrade("Cannot determine platform data directory for upgrade cache".to_string())
})?;
let cache_dir = project_dirs.data_dir().join("upgrades");
fs::create_dir_all(&cache_dir)?;
Ok(cache_dir)
}
#[cfg(test)]
#[allow(clippy::unwrap_used, clippy::expect_used)]
mod tests {
use super::*;
#[test]
fn test_upgrade_cache_dir_returns_path() {
let dir = upgrade_cache_dir().unwrap();
assert!(dir.exists());
assert!(dir.ends_with("upgrades"));
}
}