37 releases

new 0.2.23 Jul 25, 2024
0.2.20 Feb 8, 2024
0.2.16 Dec 28, 2023
0.2.15 Oct 24, 2023
0.1.2 Feb 16, 2022

#201 in Command-line interface

Download history 26871/week @ 2024-04-05 29975/week @ 2024-04-12 26707/week @ 2024-04-19 34126/week @ 2024-04-26 29030/week @ 2024-05-03 30245/week @ 2024-05-10 32403/week @ 2024-05-17 30959/week @ 2024-05-24 34472/week @ 2024-05-31 34728/week @ 2024-06-07 38032/week @ 2024-06-14 32457/week @ 2024-06-21 39947/week @ 2024-06-28 35644/week @ 2024-07-05 35013/week @ 2024-07-12 26845/week @ 2024-07-19

141,716 downloads per month
Used in 233 crates (196 directly)

MIT/Apache

110KB
665 lines

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.

Run

$ cargo add --build clap_mangen

In your build.rs:

fn main() -> std::io::Result<()> {
    let out_dir = std::path::PathBuf::from(std::env::var_os("OUT_DIR").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.

Dependencies

~0.8–1.6MB
~29K SLoC