119625d8cSopenharmony_ciuse clap::{arg, Command};
219625d8cSopenharmony_ciuse clap_mangen::Man;
319625d8cSopenharmony_ciuse std::io;
419625d8cSopenharmony_ci
519625d8cSopenharmony_ci// Run this example as `cargo run --example man | man -l -`.
619625d8cSopenharmony_ci
719625d8cSopenharmony_cifn main() -> Result<(), std::io::Error> {
819625d8cSopenharmony_ci    let cmd = Command::new("myapp")
919625d8cSopenharmony_ci        .version("1.0")
1019625d8cSopenharmony_ci        .author("Kevin K. <kbknapp@gmail.com>:Ola Nordmann <old@nordmann.no>")
1119625d8cSopenharmony_ci        .about("Does awesome things")
1219625d8cSopenharmony_ci        .long_about(
1319625d8cSopenharmony_ci            "With a longer description to help clarify some things.
1419625d8cSopenharmony_ci
1519625d8cSopenharmony_ciAnd a few newlines.",
1619625d8cSopenharmony_ci        )
1719625d8cSopenharmony_ci        .after_help("This is an extra section added to the end of the manpage.")
1819625d8cSopenharmony_ci        .after_long_help("With even more text added.")
1919625d8cSopenharmony_ci        .arg(
2019625d8cSopenharmony_ci            arg!(-c --config <FILE> "Sets a custom config file")
2119625d8cSopenharmony_ci                .long_help("Some more text about how to set a custom config file")
2219625d8cSopenharmony_ci                .default_value("config.toml")
2319625d8cSopenharmony_ci                .env("CONFIG_FILE"),
2419625d8cSopenharmony_ci        )
2519625d8cSopenharmony_ci        .arg(arg!([output] "Sets an output file").default_value("result.txt"))
2619625d8cSopenharmony_ci        .arg(
2719625d8cSopenharmony_ci            arg!(-d --debug ... "Turn debugging information on")
2819625d8cSopenharmony_ci                .env("DEBUG_ON")
2919625d8cSopenharmony_ci                .hide_env(true),
3019625d8cSopenharmony_ci        )
3119625d8cSopenharmony_ci        .subcommand(
3219625d8cSopenharmony_ci            Command::new("test")
3319625d8cSopenharmony_ci                .about("does testing things")
3419625d8cSopenharmony_ci                .arg(arg!(-l --list "Lists test values")),
3519625d8cSopenharmony_ci        );
3619625d8cSopenharmony_ci
3719625d8cSopenharmony_ci    Man::new(cmd).render(&mut io::stdout())
3819625d8cSopenharmony_ci}
39