From 9060cbd74f60599f57dc216742e5c052a5fe3d6c Mon Sep 17 00:00:00 2001 From: Pierre Tardy Date: Mon, 1 Jul 2024 20:08:19 +0200 Subject: [PATCH] fix: fix client argument parsing --- src/client_config.rs | 13 +++---------- src/client_main.rs | 6 ++---- src/main.rs | 3 +-- 3 files changed, 6 insertions(+), 16 deletions(-) diff --git a/src/client_config.rs b/src/client_config.rs index 179d225..9aac467 100644 --- a/src/client_config.rs +++ b/src/client_config.rs @@ -62,14 +62,6 @@ impl ClientConfig { pub fn new>(mut args: T) -> Result> { let mut config = ClientConfig::default(); - args.next(); - - if let Some(file_name) = args.next() { - config.filename = PathBuf::from(file_name); - } else { - return Err("Missing file to upload or download".into()); - } - while let Some(arg) = args.next() { match arg.as_str() { "-i" | "--ip-address" => { @@ -139,8 +131,9 @@ impl ClientConfig { println!(" -h, --help\t\t\tPrint help information"); process::exit(0); } - - invalid => return Err(format!("Invalid flag: {invalid}").into()), + file_name => { + config.filename = PathBuf::from(file_name); + } } } diff --git a/src/client_main.rs b/src/client_main.rs index d6d2a77..36c9151 100644 --- a/src/client_main.rs +++ b/src/client_main.rs @@ -1,11 +1,9 @@ use std::error::Error; -use std::env::args; use std::{env, net::SocketAddr, process}; -use tftpd::{Client, ClientConfig, Config, Mode, Server}; +use tftpd::{Client, ClientConfig, Mode}; fn main() { - let args: Vec = env::args().collect(); - client(args[0..].iter().map(|s| s.to_string())).unwrap_or_else(|err| { + client(env::args()).unwrap_or_else(|err| { eprintln!("{err}"); }) } diff --git a/src/main.rs b/src/main.rs index 581c7e7..3d5e864 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,8 +2,7 @@ use std::{env, net::SocketAddr, process}; use tftpd::{Config, Server}; fn main() { - let args: Vec = env::args().collect(); - server(args[0..].iter().map(|s| s.to_string())); + server(env::args()); } fn server>(args: T) {