diff --git a/Cargo.lock b/Cargo.lock index 27db7a7f8..6e9e5e0bc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -147,30 +147,6 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" -[[package]] -name = "clap" -version = "4.0.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7db700bc935f9e43e88d00b0850dae18a63773cfbec6d8e070fccf7fef89a39" -dependencies = [ - "bitflags", - "clap_lex", - "is-terminal", - "once_cell", - "strsim", - "termcolor", - "terminal_size", -] - -[[package]] -name = "clap_lex" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d4198f73e42b4936b35b5bb248d81d2b595ecb170da0bac7655c54eedfa8da8" -dependencies = [ - "os_str_bytes", -] - [[package]] name = "cloud-hypervisor" version = "29.0.0" @@ -729,12 +705,6 @@ dependencies = [ name = "option_parser" version = "0.1.0" -[[package]] -name = "os_str_bytes" -version = "6.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee" - [[package]] name = "parking_lot" version = "0.11.2" @@ -1216,16 +1186,6 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "terminal_size" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb20089a8ba2b69debd491f8d2d023761cbf196e999218c591fa1e7e15a21907" -dependencies = [ - "rustix", - "windows-sys", -] - [[package]] name = "test_infra" version = "0.1.0" @@ -1437,7 +1397,7 @@ dependencies = [ name = "vhost_user_net" version = "0.1.0" dependencies = [ - "clap", + "argh", "env_logger", "epoll", "libc", diff --git a/vhost_user_net/Cargo.toml b/vhost_user_net/Cargo.toml index da06dd84f..2d835ae48 100644 --- a/vhost_user_net/Cargo.toml +++ b/vhost_user_net/Cargo.toml @@ -5,7 +5,7 @@ authors = ["The Cloud Hypervisor Authors"] edition = "2021" [dependencies] -clap = { version = "4.0.32", features = ["wrap_help","cargo"] } +argh = "0.1.9" env_logger = "0.10.0" epoll = "4.3.1" libc = "0.2.139" diff --git a/vhost_user_net/src/main.rs b/vhost_user_net/src/main.rs index f9dc813e4..e7bc81336 100644 --- a/vhost_user_net/src/main.rs +++ b/vhost_user_net/src/main.rs @@ -6,25 +6,22 @@ // // SPDX-License-Identifier: (Apache-2.0 AND BSD-3-Clause) -use clap::{Arg, Command}; +use argh::FromArgs; use vhost_user_net::start_net_backend; +#[derive(FromArgs)] +/// Launch a vhost-user-net backend. +struct TopLevel { + #[argh(option, long = "net-backend")] + /// vhost-user-net backend parameters + /// ip=,mask=,socket=,client=on|off,num_queues=,queue_size=,tap= + backend_command: String, +} + fn main() { env_logger::init(); - let cmd_arguments = Command::new("vhost-user-net backend") - .version(env!("CARGO_PKG_VERSION")) - .author(env!("CARGO_PKG_AUTHORS")) - .about("Launch a vhost-user-net backend.") - .arg( - Arg::new("net-backend") - .long("net-backend") - .help(vhost_user_net::SYNTAX) - .num_args(1) - .required(true), - ) - .get_matches(); + let toplevel: TopLevel = argh::from_env(); - let backend_command = cmd_arguments.get_one::("net-backend").unwrap(); - start_net_backend(backend_command); + start_net_backend(&toplevel.backend_command); }