use super::namespace::{NamespaceComponents, NamespaceSource};
use anyhow::Result;
use std::path::PathBuf;
const ABBREV_LENGTH: usize = 7;
pub fn resolve_target_dir(namespace: &NamespaceComponents) -> Result<Option<PathBuf>> {
let root = PathBuf::from(&namespace.workspace_root);
let target_dir = match &namespace.source {
NamespaceSource::Branch { escaped_branch, .. } => {
Some(root.join("target").join("git").join(escaped_branch))
}
NamespaceSource::Commit { rev } => Some({
let abbrev = rev[0..ABBREV_LENGTH].to_string();
root.join("target").join("git").join(abbrev)
}),
NamespaceSource::DefaultTarget => None,
};
Ok(target_dir)
}