use std::path::PathBuf;
pub struct Paths {}
impl Paths {
pub fn get_config_path() -> PathBuf {
let home_dir = dirs::home_dir().unwrap(); let config_dir = dirs::config_dir().unwrap_or(home_dir.join(".config"));
let directories = [
home_dir.join(".takoyaki.yaml"),
config_dir.join("takoyaki.yaml"),
config_dir.join("takoyaki").join("config.yaml"),
];
let existing_dir = directories.iter().find(|d| d.exists());
let fallback_config = home_dir.join(".takoyaki.yaml");
if existing_dir.is_none() {
std::fs::File::create(&fallback_config).expect("Unable to create a file");
}
existing_dir.unwrap_or(&fallback_config).to_path_buf()
}
pub fn get_cache_path(name: &str) -> PathBuf {
let cache_dir_fallback = dirs::home_dir().unwrap().join(".cache");
let cache_dir = dirs::cache_dir()
.unwrap_or(cache_dir_fallback)
.join("takoyaki");
cache_dir.join(name).join("cache.json")
}
}