diff options
Diffstat (limited to 'vendor/clap_complete/examples/dynamic.rs')
-rw-r--r-- | vendor/clap_complete/examples/dynamic.rs | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/vendor/clap_complete/examples/dynamic.rs b/vendor/clap_complete/examples/dynamic.rs new file mode 100644 index 000000000..5abf2de1f --- /dev/null +++ b/vendor/clap_complete/examples/dynamic.rs @@ -0,0 +1,37 @@ +use clap::FromArgMatches; +use clap::Subcommand; + +fn command() -> clap::Command { + 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') + .value_parser(["json", "yaml", "toml"]), + ) + .args_conflicts_with_subcommands(true); + clap_complete::dynamic::bash::CompleteCommand::augment_subcommands(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() { + command().debug_assert(); +} |