use anyhow::Result;
use crate::config::Project;
use crate::tmux::{self, SessionBuilder};
use crate::ui;
pub fn run(project_name: Option<String>) -> Result<()> {
let name = match project_name {
Some(n) => n,
None => ui::select_project("Select project...")?
.ok_or_else(|| anyhow::anyhow!("No project selected"))?,
};
let project = Project::load(&name)?;
if tmux::session_exists(&project.name)? {
println!("Session '{}' already exists, attaching...", project.name);
tmux::connect_to_session(&project.name)?;
return Ok(());
}
project.clone_if_needed()?;
let builder = SessionBuilder::new(&project);
println!("Starting session '{}'...", project.name);
builder.start_with_control()?;
tmux::connect_to_session(&project.name)?;
Ok(())
}