use clap_complete::{Shell, generate_to};
use std::fs;
use std::io::Error;
use std::path::Path;
#[path = "src/build/mod.rs"]
mod cli;
fn main() -> Result<(), Error> {
println!("cargo:rerun-if-env-changed=MANTA_REGENERATE_DOCS");
if std::env::var("MANTA_REGENERATE_DOCS").is_err() {
return Ok(());
}
let man_dir = "man";
fs::create_dir_all(man_dir)?;
let man_path = Path::new(man_dir).join("manta.1");
let mut f = fs::File::create(&man_path)?;
cli::manpage::render_consolidated(cli::build_cli(), &mut f)?;
println!("cargo:warning=man page regenerated at {}", man_path.display());
let completion_dir = "autocomplete_shell_scripts";
fs::create_dir_all(completion_dir)?;
for shell in [Shell::Bash, Shell::Zsh, Shell::Fish, Shell::Elvish] {
let path = generate_to(
shell,
&mut cli::build_cli(),
"manta",
completion_dir,
)?;
println!("cargo:warning=completion regenerated: {path:?}");
}
Ok(())
}