aboutsummaryrefslogtreecommitdiff
path: root/crates/cli/src/main.rs
diff options
context:
space:
mode:
authorMiquel Sabaté Solà <mikisabate@gmail.com>2025-07-25 15:58:10 +0200
committerMiquel Sabaté Solà <mikisabate@gmail.com>2025-07-25 15:58:10 +0200
commit6ea4d1f33e158407a1a0b51f210461d698513300 (patch)
tree8e3d82008d2b28f7a17c9719787e24813c7af4ff /crates/cli/src/main.rs
parent9310bf5d60810c1f911a41cccfeef3c8563211ef (diff)
downloadmihi-6ea4d1f33e158407a1a0b51f210461d698513300.tar.gz
mihi-6ea4d1f33e158407a1a0b51f210461d698513300.zip
Apply suggestions from clippy
Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
Diffstat (limited to 'crates/cli/src/main.rs')
-rw-r--r--crates/cli/src/main.rs87
1 files changed, 39 insertions, 48 deletions
diff --git a/crates/cli/src/main.rs b/crates/cli/src/main.rs
index 78d094d..239891e 100644
--- a/crates/cli/src/main.rs
+++ b/crates/cli/src/main.rs
@@ -23,59 +23,50 @@ fn help() {
fn main() {
let mut args = std::env::args();
- let nargs = std::env::args().count();
- let mut count = 1;
+ let nargs = args.len();
// Skip command name.
args.next();
- // And iterate over the arguments.
- while let Some(arg) = args.next() {
- count += 1;
-
- match arg.as_str() {
- "-h" | "--help" => {
- if nargs > count {
- println!(
- "warning: arguments passed the '{}' flag will be ignored.",
- arg.as_str()
- );
- }
- help();
- std::process::exit(0);
- }
- "-v" | "--version" => {
- if nargs > count {
- println!(
- "warning: arguments passed the '{}' flag will be ignored.",
- arg.as_str()
- );
+ match args.next() {
+ Some(command_flag) => {
+ match command_flag.as_str() {
+ "-h" | "--help" => {
+ if nargs > 2 {
+ println!("warning: arguments passed the 'help' flag will be ignored.\n");
+ }
+ help();
+ std::process::exit(0);
+ },
+ "-v" | "--version" => {
+ if nargs > 2 {
+ println!("warning: arguments passed the 'version' flag will be ignored.\n");
+ }
+ println!("mihi {VERSION}");
+ std::process::exit(0);
+ },
+ "init" => {
+ let rest: Vec<String> = args.collect();
+ init::run(rest);
+ },
+ "nuke" => {
+ let rest: Vec<String> = args.collect();
+ nuke::run(rest);
+ },
+ "words" => {
+ let rest: Vec<String> = args.collect();
+ words::run(rest);
+ },
+ "run" => {
+ let rest: Vec<String> = args.collect();
+ run::run(rest);
+ },
+ _ => {
+ println!("error: unknown flag or command: '{command_flag}'");
+ std::process::exit(1);
}
- println!("mihi {}", VERSION);
- std::process::exit(0);
- }
- "init" => {
- let rest: Vec<String> = args.collect();
- return init::run(rest);
- }
- "nuke" => {
- let rest: Vec<String> = args.collect();
- return nuke::run(rest);
}
- "words" => {
- let rest: Vec<String> = args.collect();
- return words::run(rest);
- }
- "run" => {
- let rest: Vec<String> = args.collect();
- return run::run(rest);
- }
- _ => {
- println!("error: unknown flag or command: '{}'", arg.as_str());
- std::process::exit(1);
- }
- }
+ },
+ None => run::run(Vec::new())
}
-
- run::run(Vec::new());
}