clap_integration/
clap_integration.rs1use std::env;
2
3use clap::Parser;
4use shellcomp::{InstallRequest, install, render_clap_completion};
5
6#[derive(Parser)]
7struct Cli {
8 #[arg(long)]
9 verbose: bool,
10}
11
12fn main() -> Result<(), Box<dyn std::error::Error>> {
13 let generator_shell = shellcomp::clap_complete::Shell::Bash;
14 let script = render_clap_completion::<Cli>(generator_shell, "example-cli")?;
15 let demo_path = env::temp_dir().join(format!("example-cli-{}.bash", std::process::id()));
16 let report = install(InstallRequest {
17 shell: generator_shell.into(),
18 program_name: "example-cli",
19 script: &script,
20 path_override: Some(demo_path.clone()),
21 })?;
22
23 println!("Rendered completion from clap and installed it to a temporary path.");
24 println!("Path: {}", demo_path.display());
25 println!("{report:#?}");
26 Ok(())
27}