use crate::utils::BoxedError;
use directories::ProjectDirs;
use lazy_static::lazy_static;
use serde::*;
use std::path::PathBuf;
lazy_static! {
pub static ref PROJECT_DIRS: ProjectDirs = ProjectDirs::from("", "", "ido").unwrap();
}
pub fn config_filename() -> PathBuf {
PROJECT_DIRS.config_dir().join("config.yml")
}
use config;
#[derive(Serialize, Deserialize, Default, Debug)]
pub struct Config {
pub data_dir: String,
}
impl Config {
pub fn try_load() -> Result<Self, BoxedError> {
let mut config = config::Config::new();
config.merge(config::File::from(config_filename()))?;
let config: Config = config.try_into()?;
Ok(config)
}
}