33 lines
968 B
Rust
33 lines
968 B
Rust
|
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)
|
||
|
}
|
||
|
};
|
||
|
}
|