mirror of
https://github.com/clap-rs/clap
synced 2024-11-14 00:27:13 +00:00
f0d971562a
Bumps [snapbox](https://github.com/assert-rs/trycmd) from 0.3.3 to 0.4.0. - [Release notes](https://github.com/assert-rs/trycmd/releases) - [Changelog](https://github.com/assert-rs/trycmd/blob/main/CHANGELOG.md) - [Commits](https://github.com/assert-rs/trycmd/compare/snapbox-v0.3.3...snapbox-v0.4.0) --- updated-dependencies: - dependency-name: snapbox dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> |
||
---|---|---|
.. | ||
examples | ||
src | ||
tests | ||
Cargo.toml | ||
CHANGELOG.md | ||
CONTRIBUTING.md | ||
LICENSE-APACHE | ||
LICENSE-MIT | ||
README.md |
clap_mangen
Manpage generation for
clap
Dual-licensed under Apache 2.0 or MIT.
About
Generate ROFF from a clap::Command
.
Example
We're going to assume you want to generate your man page as part of your development rather than your shipped program having a flag to generate it.
In your Cargo.toml
:
[build-dependencies]
clap_mangen = "0.1"
In your build.rs
:
fn main() -> std::io::Result<()> {
let out_dir = std::path::PathBuf::from(std::env::var_os("OUT_DIR").ok_or_else(|| std::io::ErrorKind::NotFound)?);
let cmd = clap::Command::new("mybin")
.arg(clap::arg!(-n --name <NAME>))
.arg(clap::arg!(-c --count <NUM>));
let man = clap_mangen::Man::new(cmd);
let mut buffer: Vec<u8> = Default::default();
man.render(&mut buffer)?;
std::fs::write(out_dir.join("mybin.1"), buffer)?;
Ok(())
}
Tip: Consider a cargo xtask instead of a build.rs
to reduce build costs.