use std::path::PathBuf;
#[derive(Clone, Debug)]
pub struct ClientConfig {
pub default_homeserver: String,
data_dir: PathBuf,
}
impl Default for ClientConfig {
fn default() -> Self {
let data_dir = dirs::data_local_dir()
.unwrap_or_else(|| PathBuf::from("."))
.join("synpad");
Self {
default_homeserver: "https://matrix.org".to_string(),
data_dir,
}
}
}
impl ClientConfig {
pub fn data_dir(&self) -> PathBuf {
std::fs::create_dir_all(&self.data_dir).ok();
self.data_dir.clone()
}
pub fn cache_dir(&self) -> PathBuf {
let dir = self.data_dir.join("cache");
std::fs::create_dir_all(&dir).ok();
dir
}
pub fn media_cache_dir(&self) -> PathBuf {
let dir = self.cache_dir().join("media");
std::fs::create_dir_all(&dir).ok();
dir
}
pub fn avatar_cache_dir(&self) -> PathBuf {
let dir = self.cache_dir().join("avatars");
std::fs::create_dir_all(&dir).ok();
dir
}
}