clap_mangen

Manpage generation for clap

Crates.io Crates.io License License

Dual-licensed under Apache 2.0 or MIT.

  1. About
  2. API Reference
  3. Questions & Discussions
  4. CONTRIBUTING
  5. Sponsors

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: toml [build-dependencies] clap_mangen = "0.1"

In your build.rs: ```rust,norun fn main() -> std::io::Result<()> { let outdir = std::path::PathBuf::from(std::env::varos("OUTDIR").ok_or(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.