use dragonfly_client_request::{DeleteImageRequest, DeleteRequest, Proxy, Request, Scope};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let args: Vec<String> = std::env::args().collect();
if !(4..=5).contains(&args.len()) || (args[2] != "file" && args[2] != "image") {
eprintln!(
"usage: {} <scheduler-endpoint> file|image <url-or-image> [default|all_seed_peers]",
args[0]
);
std::process::exit(1);
}
let scope = match args.get(4).map(String::as_str) {
None | Some("default") => Scope::Default,
Some("all_seed_peers") => Scope::AllSeedPeers,
Some(scope) => return Err(format!("invalid scope {scope:?}").into()),
};
let proxy = Proxy::builder()
.scheduler_endpoint(args[1].clone())
.build()
.await?;
match args[2].as_str() {
"file" => {
proxy
.delete(&DeleteRequest {
url: args[3].clone(),
scope,
..Default::default()
})
.await?
}
_ => {
proxy
.delete_image(&DeleteImageRequest {
image: args[3].clone(),
scope,
..Default::default()
})
.await?
}
}
Ok(())
}