From 5ec71cc4835e078809a3b4e78faac6b37d8d22db Mon Sep 17 00:00:00 2001 From: Richard Maw Date: Fri, 19 Nov 2021 21:37:54 +0000 Subject: [PATCH] Add example for multicall completion generation --- clap_generate/Cargo.toml | 2 +- clap_generate/examples/multicall.rs | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 clap_generate/examples/multicall.rs diff --git a/clap_generate/Cargo.toml b/clap_generate/Cargo.toml index 324493308fb2..b485eebc54f4 100644 --- a/clap_generate/Cargo.toml +++ b/clap_generate/Cargo.toml @@ -36,7 +36,7 @@ clap = { path = "../", version = "=3.0.0-beta.5", default-features = false, feat [dev-dependencies] pretty_assertions = "0.7" version-sync = "0.9" -clap = { path = "../", version = "=3.0.0-beta.5", default-features = false, features = ["std", "derive"] } +clap = { path = "../", version = "=3.0.0-beta.5", default-features = false, features = ["std", "derive", "unstable-multicall"] } [features] default = [] diff --git a/clap_generate/examples/multicall.rs b/clap_generate/examples/multicall.rs new file mode 100644 index 000000000000..48b2aaca7de7 --- /dev/null +++ b/clap_generate/examples/multicall.rs @@ -0,0 +1,18 @@ +use clap::{App, AppSettings}; +use clap_generate::{generate, generators::Bash}; +use std::io; + +fn main() { + let mut app = App::new(env!("CARGO_CRATE_NAME")) + .setting(AppSettings::Multicall) + .subcommand( + App::new("test") + .subcommand(App::new("config")) + .subcommand(App::new("generate-completions")), + ) + .subcommand(App::new("hello")); + for applet in app.get_subcommands_mut() { + let name = applet.get_name().to_owned(); + generate(Bash, applet, &name, &mut io::stdout()); + } +}