use std::path::{Path, PathBuf};
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct LocalConfig {
pub(crate) data_dir: PathBuf,
pub(crate) workspace_root: PathBuf,
}
impl LocalConfig {
pub fn new(data_dir: impl Into<PathBuf>) -> Self {
let data_dir = data_dir.into();
let workspace_root = data_dir.join("workspace");
Self {
data_dir,
workspace_root,
}
}
pub fn workspace(mut self, root: impl Into<PathBuf>) -> Self {
self.workspace_root = root.into();
self
}
pub fn data_dir(&self) -> &Path {
&self.data_dir
}
pub fn workspace_root(&self) -> &Path {
&self.workspace_root
}
pub(crate) fn profile(&self) -> everruns_local::LocalProfile {
everruns_local::LocalProfile::new(self.data_dir.clone())
.with_workspace_root(self.workspace_root.clone())
}
}