personal activity index (bluesky, leaflet, substack)
pai.desertthunder.dev
rss
bluesky
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}