From b91afd55538b698b01b61f06f3e31a51321ed506 Mon Sep 17 00:00:00 2001 From: Martin Frost Date: Sat, 1 Apr 2023 21:14:26 +0200 Subject: [PATCH] Add build script to generate man pages --- build.rs | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 build.rs diff --git a/build.rs b/build.rs new file mode 100644 index 0000000..ea88d75 --- /dev/null +++ b/build.rs @@ -0,0 +1,49 @@ +use clap::CommandFactory; +use clap_mangen::Man; +use std::env; +use std::path::Path; + +#[path = "src/cli.rs"] +mod cli; + +fn main() -> std::io::Result<()> { + let target_dir = env::var("CARGO_TARGET_DIR").unwrap_or("target".to_string()); + let output_dir = Path::new(&target_dir).join(env::var("PROFILE").unwrap()); + + // git-mob docs + let cmd = cli::GitMob::command(); + let man = Man::new(cmd); + let mut buffer: Vec = Default::default(); + man.render(&mut buffer)?; + std::fs::write(output_dir.join("git-mob.1"), buffer)?; + + // git-solo docs + let cmd = cli::GitSolo::command(); + let man = Man::new(cmd); + let mut buffer: Vec = Default::default(); + man.render(&mut buffer)?; + std::fs::write(output_dir.join("git-solo.1"), buffer)?; + + // git-add-coauthor docs + let cmd = cli::GitAddCoauthor::command(); + let man = Man::new(cmd); + let mut buffer: Vec = Default::default(); + man.render(&mut buffer)?; + std::fs::write(output_dir.join("git-add-coauthor.1"), buffer)?; + + // git-edit-coauthor docs + let cmd = cli::GitEditCoauthor::command(); + let man = Man::new(cmd); + let mut buffer: Vec = Default::default(); + man.render(&mut buffer)?; + std::fs::write(output_dir.join("git-edit-coauthor.1"), buffer)?; + + // git-delete-coauthor docs + let cmd = cli::GitDeleteCoauthor::command(); + let man = Man::new(cmd); + let mut buffer: Vec = Default::default(); + man.render(&mut buffer)?; + std::fs::write(output_dir.join("git-delete-coauthor.1"), buffer)?; + + Ok(()) +}