diff --git a/src/args.rs b/src/args.rs index fd8e152..e178839 100644 --- a/src/args.rs +++ b/src/args.rs @@ -1,17 +1,14 @@ +use std::path::PathBuf; + use clap::Parser; +use clap::ValueHint; #[derive(Parser, Debug)] #[clap(author, version, about, long_about = None)] pub struct Args { - #[clap(short, long, value_parser)] - pub mode: String, - - #[clap(short, long, value_parser)] - pub file: Option, - - #[clap(short, long, value_parser)] - pub ip: Option, - #[clap(short, long, value_parser)] pub port: Option, + + #[clap(name = "FILE", value_hint = ValueHint::AnyPath)] + pub file: Option, } diff --git a/src/main.rs b/src/main.rs index 2b2463b..1f00920 100644 --- a/src/main.rs +++ b/src/main.rs @@ -16,15 +16,9 @@ fn main() { env_logger::init(); let args = Args::parse(); - match &*args.mode { - "server" => { - start_server(args); - } - "client" => { - start_client(args); - } - _ => { - println!("Unknown mode"); - } + if let Some(_) = args.port { + start_server(args); + } else { + start_client(args); } }