mirror of
https://github.com/clap-rs/clap
synced 2024-12-13 14:22:34 +00:00
86bf680645
I have access to the `clap-man` name but we use `clap_*`. Rather than people getting mixed up on which is supposed to use, we went with a different name.
40 lines
1.3 KiB
Rust
40 lines
1.3 KiB
Rust
use clap::{arg, App};
|
|
use clap_mangen::Man;
|
|
use std::io;
|
|
|
|
// Run this example as `cargo run --example man | man -l -`.
|
|
|
|
fn main() -> Result<(), std::io::Error> {
|
|
let app = App::new("myapp")
|
|
.version("1.0")
|
|
.author("Kevin K. <kbknapp@gmail.com>:Ola Nordmann <old@nordmann.no>")
|
|
.about("Does awesome things")
|
|
.long_about(
|
|
"With a longer description to help clarify some things.
|
|
|
|
And a few newlines.",
|
|
)
|
|
.after_help("This is an extra section added to the end of the manpage.")
|
|
.after_long_help("With even more text added.")
|
|
.arg(
|
|
arg!(-c --config <FILE> "Sets a custom config file")
|
|
.long_help("Some more text about how to set a custom config file")
|
|
.required(false)
|
|
.takes_value(true)
|
|
.default_value("config.toml")
|
|
.env("CONFIG_FILE"),
|
|
)
|
|
.arg(arg!([output] "Sets an output file").default_value("result.txt"))
|
|
.arg(
|
|
arg!(-d --debug ... "Turn debugging information on")
|
|
.env("DEBUG_ON")
|
|
.hide_env(true),
|
|
)
|
|
.subcommand(
|
|
App::new("test")
|
|
.about("does testing things")
|
|
.arg(arg!(-l --list "Lists test values")),
|
|
);
|
|
|
|
Man::new(app).render(&mut io::stdout())
|
|
}
|