mod view; mod search; mod download; use std::env; use std::path::Path; use std::process::exit; pub async fn run() { let mut args = env::args(); let path = args.next().expect("Cannot get binary path"); let path = Path::new(&path).file_stem().unwrap().to_str().unwrap(); let operation = match args.next() { Some(operation) => operation, None => { eprintln!("Missing operation, run `{} help`", path); exit(1); } }; match operation.as_str() { "search" => search::run(args).await, "view" | "show" | "info" => view::run(args).await, "download" | "dl" => download::run(args).await, "help" => println!(r#"Usage: {} search QUERY or {} info/view/show SAUCE [SAUCE]... or {} download/dl SAUCE [SAUCE]..."#, path, path, path), _ => { eprintln!("Unknown operation, run `{} help`", path); exit(1) } }; }