mirror of
https://github.com/clap-rs/clap
synced 2025-01-21 17:13:53 +00:00
7e899cd340
This reverts commits 24cb8b1..d0abb37 from clap-rs/clap#1840 This is part of #16. clap-rs/clap#1840 wasn't the right call but we don't have time to make the decision now, so instead of having one option and changing it in 4.0, this reverts back to clap2 behavior.
98 lines
3.2 KiB
YAML
98 lines
3.2 KiB
YAML
name: yaml_app
|
|
version: "1.0"
|
|
about: an example using a .yaml file to build a CLI
|
|
author: Kevin K. <kbknapp@gmail.com>
|
|
|
|
# AppSettings can be defined as a list and are **not** ascii case sensitive
|
|
settings:
|
|
- ArgRequiredElseHelp
|
|
|
|
# All Args must be defined in the 'args:' list where the name of the arg, is the
|
|
# key to a Hash object
|
|
args:
|
|
# The name of this argument, is 'opt' which will be used to access the value
|
|
# later in your Rust code
|
|
- opt:
|
|
help: example option argument from yaml
|
|
short: o
|
|
long: option
|
|
multiple_occurrences: true
|
|
takes_value: true
|
|
- pos:
|
|
help: example positional argument from yaml
|
|
index: 1
|
|
# A list of possible values can be defined as a list
|
|
possible_values:
|
|
- fast
|
|
- slow
|
|
- flag:
|
|
help: demo flag argument
|
|
short: F
|
|
multiple_occurrences: true
|
|
takes_value: true
|
|
global: true
|
|
# Conflicts, mutual overrides, and requirements can all be defined as a
|
|
# list, where the key is the name of the other argument
|
|
conflicts_with:
|
|
- opt
|
|
requires:
|
|
- pos
|
|
- mode:
|
|
long: mode
|
|
help: shows an option with specific values
|
|
# possible_values can also be defined in this list format
|
|
possible_values: [ vi, emacs ]
|
|
takes_value: true
|
|
- mvals:
|
|
long: mult-vals
|
|
help: demos an option which has two named values
|
|
# value names can be described in a list, where the help will be shown
|
|
# --mult-vals <one> <two>
|
|
value_names:
|
|
- one
|
|
- two
|
|
- minvals:
|
|
long: min-vals
|
|
multiple_values: true
|
|
help: you must supply at least two values to satisfy me
|
|
min_values: 2
|
|
- maxvals:
|
|
long: max-vals
|
|
multiple_values: true
|
|
help: you can only supply a max of 3 values for me!
|
|
max_values: 3
|
|
|
|
# All subcommands must be listed in the 'subcommand:' object, where the key to
|
|
# the list is the name of the subcommand, and all settings for that command are
|
|
# are part of a Hash object
|
|
subcommands:
|
|
# The name of this subcommand will be 'subcmd' which can be accessed in your
|
|
# Rust code later
|
|
- subcmd:
|
|
about: demos subcommands from yaml
|
|
version: "0.1"
|
|
author: Kevin K. <kbknapp@gmail.com>
|
|
# Subcommand args are exactly like App args
|
|
args:
|
|
- scopt:
|
|
short: B
|
|
multiple_occurrences: true
|
|
help: example subcommand option
|
|
takes_value: true
|
|
- scpos1:
|
|
help: example subcommand positional
|
|
index: 1
|
|
|
|
# ArgGroups are supported as well, and must be specified in the 'groups:'
|
|
# object of this file
|
|
groups:
|
|
# the name of the ArgGoup is specified here
|
|
- min-max-vals:
|
|
# All args and groups that are a part of this group are set here
|
|
args:
|
|
- minvals
|
|
- maxvals
|
|
# setting conflicts is done the same manner as setting 'args:'
|
|
#
|
|
# to make this group required, you could set 'required: true' but for
|
|
# this example we won't do that.
|