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