install_prebuilt/
install_prebuilt.rs1use std::env;
2
3use shellcomp::{InstallRequest, Shell, install};
4
5fn main() -> Result<(), Box<dyn std::error::Error>> {
6 let script = br#"_demo_complete() {
7 COMPREPLY=("hello" "world")
8}
9complete -F _demo_complete demo
10"#;
11 let demo_path = env::temp_dir().join(format!("demo-prebuilt-{}.bash", std::process::id()));
12 let report = install(InstallRequest {
13 shell: Shell::Bash,
14 program_name: "demo",
15 script,
16 path_override: Some(demo_path.clone()),
17 })?;
18
19 println!("Installed a prebuilt Bash completion script without touching your shell profile.");
20 println!("Path: {}", demo_path.display());
21 println!("{report:#?}");
22 Ok(())
23}