use anyhow::{Result, bail};
use crate::config::WarrenConfig;
use crate::instance::{InstanceLayout, Launcher};
use crate::ui::theme::Theme;
pub async fn execute(config: &WarrenConfig, theme: &Theme, alias: &str, yes: bool) -> Result<()> {
let layout = InstanceLayout::new(&config.paths.instances_dir, alias);
if !layout.exists() {
bail!("instance '{}' not found", alias);
}
if !yes {
use dialoguer::Confirm;
let confirm = Confirm::new()
.with_prompt(format!("Remove instance '{}' and all its data?", alias))
.default(false)
.interact()?;
if !confirm {
theme.warn("Aborted.");
return Ok(());
}
}
Launcher::uninstall(&config.paths.bin_dir, alias)?;
crate::app::desktop::uninstall(alias).ok();
layout.destroy()?;
theme.success(&format!("Removed instance '{}'", alias));
Ok(())
}