personal activity index (bluesky, leaflet, substack) pai.desertthunder.dev
rss bluesky
at main 26 lines 764 B view raw
1use std::{env, fs, path::PathBuf}; 2 3fn main() { 4 println!("cargo:rerun-if-changed=src/app.rs"); 5 println!("cargo:rerun-if-changed=src/main.rs"); 6 7 let out_dir = PathBuf::from(env::var_os("OUT_DIR").expect("OUT_DIR not set by Cargo build script environment")); 8 let man_path = out_dir.join("pai.1"); 9 10 let man = build_manpage(); 11 fs::write(&man_path, man).expect("failed to write manpage"); 12 println!("cargo:rustc-env=PAI_MAN_PAGE={}", man_path.display()); 13} 14 15#[path = "src/app.rs"] 16mod app; 17 18fn build_manpage() -> Vec<u8> { 19 use clap::CommandFactory; 20 21 let cmd = app::Cli::command(); 22 let man = clap_mangen::Man::new(cmd); 23 let mut buffer = Vec::new(); 24 man.render(&mut buffer).expect("failed to render man page"); 25 buffer 26}