Add build script, generate man page at build-time

This commit is contained in:
Marcin Kulik
2024-04-29 16:50:11 +02:00
parent b692339d50
commit 56884faca0
3 changed files with 42 additions and 0 deletions

17
Cargo.lock generated
View File

@@ -88,6 +88,7 @@ dependencies = [
"avt",
"axum",
"clap",
"clap_mangen",
"config",
"futures-util",
"mime_guess",
@@ -335,6 +336,16 @@ version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
[[package]]
name = "clap_mangen"
version = "0.2.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e1dd95b5ebb5c1c54581dd6346f3ed6a79a3eef95dd372fc2ac13d535535300e"
dependencies = [
"clap",
"roff",
]
[[package]]
name = "clipboard-win"
version = "5.1.0"
@@ -1642,6 +1653,12 @@ dependencies = [
"windows-sys 0.52.0",
]
[[package]]
name = "roff"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b833d8d034ea094b1ea68aa6d5c740e0d04bad9d16568d08ba6f76823a114316"
[[package]]
name = "rust-embed"
version = "8.2.0"

View File

@@ -44,5 +44,10 @@ tokio-tungstenite = { version = "0.21.0", features = ["rustls-tls-webpki-roots"]
sha2 = "0.10.8"
tokio-util = "0.7.10"
[build-dependencies]
clap = { version = "4.4.7", features = ["derive"] }
clap_mangen = "0.2.20"
url = "2.5.0"
[profile.release]
strip = true

20
build.rs Normal file
View File

@@ -0,0 +1,20 @@
use clap::CommandFactory;
use clap_mangen::Man;
use std::env;
use std::fs;
use std::io;
use std::path::PathBuf;
mod cli {
include!("src/cli.rs");
}
fn main() -> std::io::Result<()> {
let out_dir = PathBuf::from(env::var_os("OUT_DIR").ok_or(io::ErrorKind::NotFound)?);
let cmd = cli::Cli::command();
let man = Man::new(cmd);
let mut buffer: Vec<u8> = Default::default();
man.render(&mut buffer)?;
fs::write(out_dir.join("asciinema.1"), buffer)
}