mirror of
https://github.com/clap-rs/clap
synced 2024-12-12 13:52:34 +00:00
686b0379ce
`multicall` allows you to have one binary expose itself as multiple programs, like busybox does. This also works well for user clap for parsing REPLs. Fixes #2861
17 lines
654 B
Rust
17 lines
654 B
Rust
use clap::Command;
|
|
|
|
fn main() {
|
|
let cmd = Command::new(env!("CARGO_CRATE_NAME"))
|
|
.multicall(true)
|
|
.arg_required_else_help(true)
|
|
.subcommand_value_name("APPLET")
|
|
.subcommand_help_heading("APPLETS")
|
|
.subcommand(Command::new("hostname").about("show hostname part of FQDN"))
|
|
.subcommand(Command::new("dnsdomainname").about("show domain name part of FQDN"));
|
|
|
|
match cmd.get_matches().subcommand_name() {
|
|
Some("hostname") => println!("www"),
|
|
Some("dnsdomainname") => println!("example.com"),
|
|
_ => unreachable!("parser should ensure only valid subcommand names are used"),
|
|
}
|
|
}
|