diff --git a/clap_generate/Cargo.toml b/clap_generate/Cargo.toml index e13d57692aec..02ad986e6063 100644 --- a/clap_generate/Cargo.toml +++ b/clap_generate/Cargo.toml @@ -30,7 +30,7 @@ clap = { path = "../", version = "=3.0.0-beta.5", default-features = false, feat [dev-dependencies] pretty_assertions = "1.0" -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()); + } +}