#clap #manpage #generate #cli

clap_mangen

clap 的 man 页生成器

37 个版本

0.2.23 2024年7月25日
0.2.20 2024年2月8日
0.2.16 2023年12月28日
0.2.15 2023年10月24日
0.1.2 2022年2月16日

#172命令行界面

Download history 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 35067/week @ 2024-07-19 45874/week @ 2024-07-26 37076/week @ 2024-08-02 38224/week @ 2024-08-09 35719/week @ 2024-08-16

165,661 每月下载量
241 个 crate(直接使用) 使用

MIT/Apache

110KB
664

clap_mangen

clap 生成 man 页

Crates.io Crates.io License License

双授权于 Apache 2.0MIT

  1. 关于
  2. API 参考
  3. 问题 & 讨论
  4. CONTRIBUTING
  5. 赞助商

关于

clap::Command 生成 ROFF

示例

我们假设您想在开发过程中而不是在您的程序中包含生成标志的情况下生成您的 man 页。

运行

$ cargo add --build clap_mangen

在您的 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(())
}

提示:考虑使用 cargo xtask 而不是 build.rs 以降低构建成本。

依赖项

~0.8–1.5MB
~28K SLoC