diff --git a/src/main.rs b/src/main.rs index 70008f4..3e9ab16 100644 --- a/src/main.rs +++ b/src/main.rs @@ -60,26 +60,26 @@ fn parse_args(args: Vec) -> Args { } if server.unwrap_or(false) { - if rest.is_empty() && sudo.is_none() { + if rest.len() == 0 && sudo.is_none() { Args::Server } else { Args::Error } - } else if rest.is_empty() { - Args::Error - } else if rest[0] == "browse" { - if rest.len() == 2 { - Args::Browse(rest[1].to_string()) - } else if rest.len() == 1 { - Args::Client(rest[0].to_string(), sudo.unwrap_or(false)) - } else { - Args::Error - } - } else if rest[0] == "clip" { - if rest.len() == 1 { - Args::Clip(None) - } else if rest.len() == 2 { - Args::Clip(Some(rest[1].to_string())) + } else if rest.len() >= 1 { + if rest[0] == "browse" { + if rest.len() == 2 { + Args::Browse(rest[1].to_string()) + } else { + Args::Error + } + } else if rest[0] == "clip" { + if rest.len() == 1 { + Args::Clip(None) + } else if rest.len() == 2 { + Args::Clip(Some(rest[1].to_string())) + } else { + Args::Error + } } else { Args::Error } @@ -91,7 +91,7 @@ fn parse_args(args: Vec) -> Args { } async fn browse_url(url: &str) { - if let Err(e) = fwd::browse_url(url).await { + if let Err(e) = fwd::browse_url(&url).await { eprintln!("Unable to open {url}"); eprintln!("{}", e); std::process::exit(1); @@ -141,7 +141,8 @@ mod tests { // Goldarn it. fn args(x: &[&str]) -> Vec { - let mut vec: Vec = x.iter().map(|a| a.to_string()).collect(); + let mut vec: Vec = + x.into_iter().map(|a| a.to_string()).collect(); vec.insert(0, "fwd".to_string()); vec } @@ -187,11 +188,6 @@ mod tests { assert_arg_parse!(&["--server"], Args::Server); } - #[test] - fn clip() { - assert_arg_parse!(&["clip"], Args::Clip(None)); - } - #[test] fn browse() { assert_arg_parse!(&["browse", "google.com"], Args::Browse(_));