mod args;
use radicle::storage;
use radicle::storage::WriteStorage;
use crate::terminal as term;
pub use args::Args;
pub fn run(args: Args, ctx: impl term::Context) -> anyhow::Result<()> {
let profile = ctx.profile()?;
let storage = &profile.storage;
let rid = args.repo;
let path = storage::git::paths::repository(storage, &rid);
if !path.exists() {
anyhow::bail!("repository {rid} was not found");
}
if args.no_confirm || term::confirm(format!("Clean {rid}?")) {
let cleaned = storage.clean(rid)?;
for remote in cleaned {
term::info!("Removed {remote}");
}
term::success!("Successfully cleaned {rid}");
}
Ok(())
}