119625d8cSopenharmony_ciuse clap::FromArgMatches;
219625d8cSopenharmony_ciuse clap::Subcommand;
319625d8cSopenharmony_ci
419625d8cSopenharmony_cifn command() -> clap::Command {
519625d8cSopenharmony_ci    let cmd = clap::Command::new("dynamic")
619625d8cSopenharmony_ci        .arg(
719625d8cSopenharmony_ci            clap::Arg::new("input")
819625d8cSopenharmony_ci                .long("input")
919625d8cSopenharmony_ci                .short('i')
1019625d8cSopenharmony_ci                .value_hint(clap::ValueHint::FilePath),
1119625d8cSopenharmony_ci        )
1219625d8cSopenharmony_ci        .arg(
1319625d8cSopenharmony_ci            clap::Arg::new("format")
1419625d8cSopenharmony_ci                .long("format")
1519625d8cSopenharmony_ci                .short('F')
1619625d8cSopenharmony_ci                .value_parser(["json", "yaml", "toml"]),
1719625d8cSopenharmony_ci        )
1819625d8cSopenharmony_ci        .args_conflicts_with_subcommands(true);
1919625d8cSopenharmony_ci    clap_complete::dynamic::bash::CompleteCommand::augment_subcommands(cmd)
2019625d8cSopenharmony_ci}
2119625d8cSopenharmony_ci
2219625d8cSopenharmony_cifn main() {
2319625d8cSopenharmony_ci    let cmd = command();
2419625d8cSopenharmony_ci    let matches = cmd.get_matches();
2519625d8cSopenharmony_ci    if let Ok(completions) =
2619625d8cSopenharmony_ci        clap_complete::dynamic::bash::CompleteCommand::from_arg_matches(&matches)
2719625d8cSopenharmony_ci    {
2819625d8cSopenharmony_ci        completions.complete(&mut command());
2919625d8cSopenharmony_ci    } else {
3019625d8cSopenharmony_ci        println!("{:#?}", matches);
3119625d8cSopenharmony_ci    }
3219625d8cSopenharmony_ci}
3319625d8cSopenharmony_ci
3419625d8cSopenharmony_ci#[test]
3519625d8cSopenharmony_cifn verify_cli() {
3619625d8cSopenharmony_ci    command().debug_assert();
3719625d8cSopenharmony_ci}
38