use crate::cli::PathArgs;
use crate::error::{Error, Result};
use crate::interactive::run_path_interactive;
use crate::vcs;
pub(crate) fn run(args: PathArgs) -> Result<()> {
let provider = vcs::get_provider()?;
if !provider.is_inside_repo() {
return Err(Error::NotInAnyRepo);
}
if args.main {
let main_path = provider.main_workspace_root()?;
println!("{}", main_path.display());
} else {
let workspaces = provider.list_workspaces()?;
let selected = run_path_interactive(&workspaces)?;
println!("{}", selected.display());
}
Ok(())
}
#[cfg(test)]
mod tests {
#[test]
fn test_run_not_in_repo() {
}
}