use std::env;
use std::fs;
use std::path::PathBuf;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let out_dir = PathBuf::from(env::var("OUT_DIR")?);
let man_dir = out_dir.join("man").join("man1");
let docs_dir = out_dir.join("docs");
fs::create_dir_all(&man_dir).unwrap();
fs::create_dir_all(&docs_dir).unwrap();
let cmd = git_perf_cli_types::Cli::command_without_version();
let man = clap_mangen::Man::new(cmd);
let mut buffer: Vec<u8> = Default::default();
man.render(&mut buffer).unwrap();
let main_man_path = man_dir.join("git-perf.1");
fs::write(&main_man_path, &buffer).unwrap();
let cmd = git_perf_cli_types::Cli::command_without_version();
for subcmd in cmd.get_subcommands() {
let man = clap_mangen::Man::new(subcmd.clone());
let mut buffer: Vec<u8> = Default::default();
man.render(&mut buffer).unwrap();
let subcmd_name = subcmd.get_name();
let subcmd_man_path = man_dir.join(format!("git-perf-{subcmd_name}.1"));
fs::write(&subcmd_man_path, &buffer).unwrap();
}
let main_markdown = clap_markdown::help_markdown::<git_perf_cli_types::Cli>();
let markdown_path = docs_dir.join("manpage.md");
fs::write(&markdown_path, &main_markdown).unwrap();
println!("cargo:rerun-if-changed=../git_perf_cli_types/src/lib.rs");
Ok(())
}