use directories::ProjectDirs;
use settings_manager::result::{Error as SettingsError, Result as SettingsResult};
use std::io;
use std::path::PathBuf;
use thot_core::identifier::Identifier;
pub fn system_dirs() -> SettingsResult<ProjectDirs> {
let dirs_opt = ProjectDirs::from(
&Identifier::qualifier(),
&Identifier::organization(),
&Identifier::application(),
);
match dirs_opt {
Some(dirs) => Ok(dirs),
None => Err(SettingsError::IoError(io::Error::new(
io::ErrorKind::NotFound,
"system settings directory not found",
))),
}
}
pub fn config_dir_path() -> SettingsResult<PathBuf> {
let dirs = system_dirs()?;
let path = dirs.config_dir();
Ok(path.to_path_buf())
}
#[cfg(test)]
#[path = "./common_test.rs"]
mod common_test;