mirror of
https://github.com/clap-rs/clap
synced 2024-12-14 23:02:31 +00:00
40 lines
1 KiB
Rust
40 lines
1 KiB
Rust
|
use clap::FromArgMatches;
|
||
|
use clap::Subcommand;
|
||
|
|
||
|
fn command() -> clap::Command<'static> {
|
||
|
let cmd = clap::Command::new("dynamic")
|
||
|
.arg(
|
||
|
clap::Arg::new("input")
|
||
|
.long("--input")
|
||
|
.short('i')
|
||
|
.value_hint(clap::ValueHint::FilePath),
|
||
|
)
|
||
|
.arg(
|
||
|
clap::Arg::new("format")
|
||
|
.long("--format")
|
||
|
.short('F')
|
||
|
.possible_values(["json", "yaml", "toml"]),
|
||
|
)
|
||
|
.args_conflicts_with_subcommands(true);
|
||
|
let cmd = clap_complete::dynamic::bash::CompleteCommand::augment_subcommands(cmd);
|
||
|
cmd
|
||
|
}
|
||
|
|
||
|
fn main() {
|
||
|
let cmd = command();
|
||
|
let matches = cmd.get_matches();
|
||
|
if let Ok(completions) =
|
||
|
clap_complete::dynamic::bash::CompleteCommand::from_arg_matches(&matches)
|
||
|
{
|
||
|
completions.complete(&mut command());
|
||
|
} else {
|
||
|
println!("{:#?}", matches);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#[test]
|
||
|
fn verify_cli() {
|
||
|
use clap::CommandFactory;
|
||
|
command().command().debug_assert();
|
||
|
}
|