21 lines
619 B
Rust
21 lines
619 B
Rust
|
use clap::CommandFactory;
|
||
|
use clap_complete::Shell;
|
||
|
use std::{fs, path::Path};
|
||
|
|
||
|
include!("src/cli.rs");
|
||
|
|
||
|
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||
|
let outdir = std::env::var_os("SHELL_COMPLETIONS_DIR")
|
||
|
.or_else(|| std::env::var_os("OUT_DIR"))
|
||
|
.expect("OUT_DIR not found");
|
||
|
let outdir_path = Path::new(&outdir);
|
||
|
let app = &mut App::command();
|
||
|
|
||
|
for shell in Shell::value_variants() {
|
||
|
let dir = outdir_path.join(shell.to_string());
|
||
|
fs::create_dir_all(&dir)?;
|
||
|
clap_complete::generate_to(*shell, app, app.get_name().to_string(), &dir)?;
|
||
|
}
|
||
|
Ok(())
|
||
|
}
|