use crate::context::WorkspaceContext;
use crate::docker::{DockerCompose, reclaim_stale_ports};
use crate::env_writer::EnvWriter;
use anyhow::Result;
use colored::Colorize;
pub fn execute_bootstrap(ctx: &WorkspaceContext) -> Result<()> {
println!(
"{} Bootstrapping environment for project '{}' (project: {})...",
"[bootstrap]".blue().bold(),
ctx.config.name,
ctx.compose_project.cyan()
);
reclaim_stale_ports(ctx);
let compose = DockerCompose::new(ctx)?;
EnvWriter::write_workspace_env(ctx)?;
compose.create()?;
println!(
"{} Environment bootstrap complete! Containers and volumes created, .env written.",
"[bootstrap]".green().bold()
);
Ok(())
}