use std::path::PathBuf;
use shared::ext::PathBufExt;
use super::DirError;
#[derive(Clone, Debug, PartialEq, Eq, Hash)]
pub enum InstallTarget {
CurrentUser,
SpecificUser(String),
Global,
}
impl Default for InstallTarget {
#[inline]
fn default() -> Self {
InstallTarget::CurrentUser
}
}
impl InstallTarget {
pub fn cfg_dir(&self) -> Result<PathBuf, DirError> {
match self {
Self::CurrentUser => {
dirs::config_dir()
.ok_or(DirError::CurrentUserConfigDir)
.map(|cfg| cfg.pushing("Ocean"))
},
Self::SpecificUser(username) => {
unimplemented!("TODO: Get config directory for {:?}", username);
},
Self::Global => {
unimplemented!("TODO: Get global config directory");
},
}
}
}