-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.rs
33 lines (27 loc) · 982 Bytes
/
build.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
use clap::CommandFactory;
use clap_mangen::Man;
use std::{fs, path::PathBuf};
#[allow(dead_code)]
#[path = "src/cli.rs"]
mod cli;
fn generate_man_pages() -> Result<(), Box<dyn std::error::Error>> {
let cmd = cli::WFetchArgs::command();
let man_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("target/man");
fs::create_dir_all(&man_dir)?;
let mut buffer = Vec::default();
Man::new(cmd).render(&mut buffer)?;
fs::write(man_dir.join("wfetch.1"), buffer)?;
Ok(())
}
fn main() {
// override with the version passed in from nix
// https://github.com/rust-lang/cargo/issues/6583#issuecomment-1259871885
if let Ok(val) = std::env::var("NIX_RELEASE_VERSION") {
println!("cargo:rustc-env=CARGO_PKG_VERSION={val}");
}
println!("cargo:rerun-if-env-changed=NIX_RELEASE_VERSION");
// generate man pages
if let Err(err) = generate_man_pages() {
println!("cargo:warning=Error generating man pages: {err}");
}
}