use camino::Utf8PathBuf;
use crate::system::SystemHomeInfo;
pub struct SystemDirs {
app_name: String,
}
impl SystemDirs {
pub fn new(app_name: &str) -> Self {
let app_name = app_name.to_owned();
Self { app_name }
}
}
impl SystemHomeInfo for SystemDirs {
fn get_cache_home(&self) -> Utf8PathBuf {
let mut out = Utf8PathBuf::from("/usr/local/cache");
out.push(&self.app_name);
out
}
fn get_config_home(&self) -> Utf8PathBuf {
let mut out = Utf8PathBuf::from("/usr/local/etc");
out.push(&self.app_name);
out
}
fn get_data_home(&self) -> Utf8PathBuf {
let mut out = Utf8PathBuf::from("/usr/local/var");
out.push(&self.app_name);
out
}
fn get_log_home(&self) -> Utf8PathBuf {
let mut out = Utf8PathBuf::from("/usr/local/var/log");
out.push(&self.app_name);
out
}
fn get_state_home(&self) -> Utf8PathBuf {
let mut out = Utf8PathBuf::from("/usr/local/var/lib");
out.push(&self.app_name);
out
}
fn get_opt_home(&self) -> Utf8PathBuf {
let mut out = Utf8PathBuf::from("/opt");
out.push(&self.app_name);
out
}
}