1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
use carapace_spec_clap::Spec;
use clap::{Arg, ArgAction, Command, ValueHint};
use clap_complete::generate;
use std::io;
fn main() {
let mut cmd = Command::new("example")
.aliases(["alias1", "alias2"])
.about("example command")
.arg(
Arg::new("help")
.long("help")
.short('h')
.help("show help")
.action(ArgAction::SetTrue),
)
.arg(
Arg::new("optional")
.long("optional")
.help("optional argument")
.require_equals(true)
.value_hint(ValueHint::Username),
)
.arg(
Arg::new("value")
.short('v')
.help("takes argument")
.value_parser(["one", "two", "three"]),
)
.subcommand(
Command::new("subcommand")
.about("example subcommand")
.arg(
Arg::new("command")
.long("command")
.short('c')
.help("execute command")
.value_hint(ValueHint::CommandName),
)
.arg(
Arg::new("pos1")
.value_parser(["four", "five", "six"])
.value_hint(ValueHint::DirPath),
)
.arg(
Arg::new("posAny")
.num_args(1..)
.value_hint(ValueHint::Hostname),
),
);
generate(Spec, &mut cmd, "example", &mut io::stdout());
}
|