reactive_graph/tooling/instances/repositories/
remove.rs1use crate::tooling::instances::repositories::args::DeleteRepositoryArgs;
2use anyhow::anyhow;
3use std::path::Path;
4
5pub fn remove_repository(instance_dir: &Path, args: DeleteRepositoryArgs) -> anyhow::Result<()> {
6 if args.local_name == "default" && !args.force.unwrap_or(false) {
7 return Err(anyhow!("The default repository cannot be removed!"));
8 }
9 let mut repository_dir = instance_dir.to_owned();
10 repository_dir.push(&args.local_name);
11 match std::fs::remove_dir_all(&repository_dir) {
12 Ok(_) => {
13 println!("Removed repository {} from {}", args.local_name, repository_dir.to_string_lossy());
14 Ok(())
15 }
16 Err(e) => {
17 eprintln!("Cannot remove repository {} from {}: {}", args.local_name, repository_dir.to_string_lossy(), e);
18 Err(e.into())
19 }
20 }
21}