Files
cli/vendor/clap/src/bin/stdio-fixture.rs

109 lines
3.8 KiB
Rust
Raw Normal View History

use clap::{Arg, ArgAction, Command, builder::PossibleValue};
fn main() {
#[allow(unused_mut)]
let mut cmd = Command::new("stdio-fixture")
.version("1.0")
.long_version("1.0 - a2132c")
.term_width(0)
.max_term_width(0)
.arg_required_else_help(true)
.subcommand(Command::new("more"))
.subcommand(
Command::new("test")
.visible_alias("do-stuff")
.long_about("Subcommand with one visible alias"),
)
.subcommand(
Command::new("test_2")
.visible_aliases(["do-other-stuff", "tests"])
.about("several visible aliases")
.long_about("Subcommand with multiple visible aliases"),
)
.subcommand(
Command::new("test_3")
.long_flag("test")
.about("several visible long flag aliases")
.visible_long_flag_aliases(["testing", "testall", "test_all"]),
)
.subcommand(
Command::new("test_4")
.short_flag('t')
.about("several visible short flag aliases")
.visible_short_flag_aliases(['q', 'w']),
)
.subcommand(
Command::new("test_5")
.short_flag('e')
.long_flag("test-hdr")
.about("all kinds of visible aliases")
.visible_aliases(["tests_4k"])
.visible_long_flag_aliases(["thetests", "t4k"])
.visible_short_flag_aliases(['r', 'y']),
)
.arg(
Arg::new("verbose")
.long("verbose")
.help("log")
.action(ArgAction::SetTrue)
.long_help("more log"),
)
.arg(
Arg::new("config")
.action(ArgAction::Set)
.help("Speed configuration")
.short('c')
.long("config")
.value_name("MODE")
.value_parser([
PossibleValue::new("fast"),
PossibleValue::new("slow").help("slower than fast"),
PossibleValue::new("secret speed").hide(true),
])
.default_value("fast"),
)
.arg(
Arg::new("name")
.action(ArgAction::Set)
.help("App name")
.long_help("Set the instance app name")
.value_name("NAME")
.visible_alias("app-name")
.default_value("clap"),
)
.arg(
Arg::new("fruits")
.short('f')
.visible_short_alias('b')
.action(ArgAction::Append)
.value_name("FRUITS")
.help("List of fruits")
.default_values(["apple", "banane", "orange"]),
);
#[cfg(feature = "env")]
{
cmd = cmd.arg(
Arg::new("env_arg")
.help("Read from env var when arg is not present.")
.value_name("ENV")
.env("ENV_ARG"),
);
}
#[cfg(feature = "color")]
{
use clap::builder::styling::{AnsiColor, Styles};
const STYLES: Styles = Styles::styled()
.header(AnsiColor::Green.on_default().bold())
.error(AnsiColor::Red.on_default().bold())
.usage(AnsiColor::Green.on_default().bold().underline())
.literal(AnsiColor::Blue.on_default().bold())
.placeholder(AnsiColor::Cyan.on_default())
.valid(AnsiColor::Green.on_default())
.invalid(AnsiColor::Magenta.on_default().bold())
.context(AnsiColor::Yellow.on_default().dimmed())
.context_value(AnsiColor::Yellow.on_default().italic());
cmd = cmd.styles(STYLES);
}
cmd.get_matches();
}