-
-
Notifications
You must be signed in to change notification settings - Fork 19
Expand file tree
/
Copy pathbuild.rs
More file actions
20 lines (17 loc) · 619 Bytes
/
build.rs
File metadata and controls
20 lines (17 loc) · 619 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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(())
}