mirror of
https://github.com/clap-rs/clap
synced 2025-03-04 07:17:26 +00:00
test(tutorial): Ensure we actually test code
Biggest problem identified is that we are incorrectly setting the help usage in `04_04_custom`
This commit is contained in:
parent
52f039e549
commit
e1aafce431
16 changed files with 101 additions and 101 deletions
|
@ -1,13 +1,13 @@
|
|||
```console
|
||||
$ 01_quick --help
|
||||
$ 01_quick_derive --help
|
||||
clap [..]
|
||||
A simple to use, efficient, and full-featured Command Line Argument Parser
|
||||
|
||||
USAGE:
|
||||
01_quick[EXE] [OPTIONS] [name] [SUBCOMMAND]
|
||||
01_quick_derive[EXE] [OPTIONS] [NAME] [SUBCOMMAND]
|
||||
|
||||
ARGS:
|
||||
<name> Optional name to operate on
|
||||
<NAME> Optional name to operate on
|
||||
|
||||
OPTIONS:
|
||||
-c, --config <FILE> Sets a custom config file
|
||||
|
@ -23,14 +23,14 @@ SUBCOMMANDS:
|
|||
|
||||
By default, the program does nothing:
|
||||
```console
|
||||
$ 01_quick
|
||||
$ 01_quick_derive
|
||||
Debug mode is off
|
||||
|
||||
```
|
||||
|
||||
But you can mix and match the various features
|
||||
```console
|
||||
$ 01_quick -dd test
|
||||
$ 01_quick_derive -dd test
|
||||
Debug mode is on
|
||||
Not printing testing lists...
|
||||
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
```console
|
||||
$ 02_app_settings --help
|
||||
$ 02_app_settings_derive --help
|
||||
clap [..]
|
||||
A simple to use, efficient, and full-featured Command Line Argument Parser
|
||||
|
||||
USAGE:
|
||||
02_app_settings[EXE] --two <VALUE> --one <VALUE>
|
||||
02_app_settings_derive[EXE] --two <TWO> --one <ONE>
|
||||
|
||||
OPTIONS:
|
||||
--two <VALUE>
|
||||
--one <VALUE>
|
||||
-h, --help Print help information
|
||||
-V, --version Print version information
|
||||
--two <TWO>
|
||||
--one <ONE>
|
||||
-h, --help Print help information
|
||||
-V, --version Print version information
|
||||
|
||||
$ 02_app_settings --one -1 --one -3 --two 10
|
||||
$ 02_app_settings_derive --one -1 --one -3 --two 10
|
||||
two: "10"
|
||||
one: "-3"
|
||||
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
```console
|
||||
$ 02_apps --help
|
||||
$ 02_apps_derive --help
|
||||
MyApp 1.0
|
||||
Kevin K. <kbknapp@gmail.com>
|
||||
Does awesome things
|
||||
|
||||
USAGE:
|
||||
02_apps[EXE] --two <VALUE> --one <VALUE>
|
||||
02_apps_derive[EXE] --two <TWO> --one <ONE>
|
||||
|
||||
OPTIONS:
|
||||
--two <VALUE>
|
||||
--one <VALUE>
|
||||
-h, --help Print help information
|
||||
-V, --version Print version information
|
||||
--two <TWO>
|
||||
--one <ONE>
|
||||
-h, --help Print help information
|
||||
-V, --version Print version information
|
||||
|
||||
$ 02_apps --version
|
||||
$ 02_apps_derive --version
|
||||
MyApp 1.0
|
||||
|
||||
```
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
```console
|
||||
$ 02_crate --help
|
||||
$ 02_crate_derive --help
|
||||
clap [..]
|
||||
A simple to use, efficient, and full-featured Command Line Argument Parser
|
||||
|
||||
USAGE:
|
||||
02_crate[EXE] --two <VALUE> --one <VALUE>
|
||||
02_crate_derive[EXE] --two <TWO> --one <ONE>
|
||||
|
||||
OPTIONS:
|
||||
--two <VALUE>
|
||||
--one <VALUE>
|
||||
-h, --help Print help information
|
||||
-V, --version Print version information
|
||||
--two <TWO>
|
||||
--one <ONE>
|
||||
-h, --help Print help information
|
||||
-V, --version Print version information
|
||||
|
||||
$ 02_crate --version
|
||||
$ 02_crate_derive --version
|
||||
clap [..]
|
||||
|
||||
```
|
||||
|
|
|
@ -1,23 +1,23 @@
|
|||
```console
|
||||
$ 03_01_flag_bool --help
|
||||
$ 03_01_flag_bool_derive --help
|
||||
clap [..]
|
||||
A simple to use, efficient, and full-featured Command Line Argument Parser
|
||||
|
||||
USAGE:
|
||||
03_01_flag_bool[EXE] [OPTIONS]
|
||||
03_01_flag_bool_derive[EXE] [OPTIONS]
|
||||
|
||||
OPTIONS:
|
||||
-v, --verbose
|
||||
-h, --help Print help information
|
||||
-V, --version Print version information
|
||||
|
||||
$ 03_01_flag_bool
|
||||
$ 03_01_flag_bool_derive
|
||||
verbose: false
|
||||
|
||||
$ 03_01_flag_bool --verbose
|
||||
$ 03_01_flag_bool_derive --verbose
|
||||
verbose: true
|
||||
|
||||
$ 03_01_flag_bool --verbose --verbose
|
||||
$ 03_01_flag_bool_derive --verbose --verbose
|
||||
verbose: true
|
||||
|
||||
```
|
||||
|
|
|
@ -1,23 +1,23 @@
|
|||
```console
|
||||
$ 03_01_flag_count --help
|
||||
$ 03_01_flag_count_derive --help
|
||||
clap [..]
|
||||
A simple to use, efficient, and full-featured Command Line Argument Parser
|
||||
|
||||
USAGE:
|
||||
03_01_flag_count[EXE] [OPTIONS]
|
||||
03_01_flag_count_derive[EXE] [OPTIONS]
|
||||
|
||||
OPTIONS:
|
||||
-v, --verbose...
|
||||
-h, --help Print help information
|
||||
-V, --version Print version information
|
||||
|
||||
$ 03_01_flag_count
|
||||
$ 03_01_flag_count_derive
|
||||
verbose: 0
|
||||
|
||||
$ 03_01_flag_count --verbose
|
||||
$ 03_01_flag_count_derive --verbose
|
||||
verbose: 1
|
||||
|
||||
$ 03_01_flag_count --verbose --verbose
|
||||
$ 03_01_flag_count_derive --verbose --verbose
|
||||
verbose: 2
|
||||
|
||||
```
|
||||
|
|
|
@ -1,32 +1,32 @@
|
|||
```console
|
||||
$ 03_02_option --help
|
||||
$ 03_02_option_derive --help
|
||||
clap [..]
|
||||
A simple to use, efficient, and full-featured Command Line Argument Parser
|
||||
|
||||
USAGE:
|
||||
03_02_option[EXE] [OPTIONS]
|
||||
03_02_option_derive[EXE] [OPTIONS]
|
||||
|
||||
OPTIONS:
|
||||
-n, --name <NAME>
|
||||
-h, --help Print help information
|
||||
-V, --version Print version information
|
||||
|
||||
$ 03_02_option
|
||||
$ 03_02_option_derive
|
||||
name: None
|
||||
|
||||
$ 03_02_option --name bob
|
||||
$ 03_02_option_derive --name bob
|
||||
name: Some("bob")
|
||||
|
||||
$ 03_02_option --name=bob
|
||||
$ 03_02_option_derive --name=bob
|
||||
name: Some("bob")
|
||||
|
||||
$ 03_02_option -n bob
|
||||
$ 03_02_option_derive -n bob
|
||||
name: Some("bob")
|
||||
|
||||
$ 03_02_option -n=bob
|
||||
$ 03_02_option_derive -n=bob
|
||||
name: Some("bob")
|
||||
|
||||
$ 03_02_option -nbob
|
||||
$ 03_02_option_derive -nbob
|
||||
name: Some("bob")
|
||||
|
||||
```
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
```console
|
||||
$ 03_03_positional --help
|
||||
$ 03_03_positional_derive --help
|
||||
clap [..]
|
||||
A simple to use, efficient, and full-featured Command Line Argument Parser
|
||||
|
||||
USAGE:
|
||||
03_03_positional[EXE] [NAME]
|
||||
03_03_positional_derive[EXE] [NAME]
|
||||
|
||||
ARGS:
|
||||
<NAME>
|
||||
|
@ -13,10 +13,10 @@ OPTIONS:
|
|||
-h, --help Print help information
|
||||
-V, --version Print version information
|
||||
|
||||
$ 03_03_positional
|
||||
NAME: None
|
||||
$ 03_03_positional_derive
|
||||
name: None
|
||||
|
||||
$ 03_03_positional bob
|
||||
NAME: Some("bob")
|
||||
$ 03_03_positional_derive bob
|
||||
name: Some("bob")
|
||||
|
||||
```
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
```console
|
||||
$ 03_04_subcommands help
|
||||
$ 03_04_subcommands_derive help
|
||||
clap [..]
|
||||
A simple to use, efficient, and full-featured Command Line Argument Parser
|
||||
|
||||
USAGE:
|
||||
03_04_subcommands[EXE] <SUBCOMMAND>
|
||||
03_04_subcommands_derive[EXE] <SUBCOMMAND>
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Print help information
|
||||
|
@ -14,12 +14,12 @@ SUBCOMMANDS:
|
|||
add Adds files to myapp
|
||||
help Print this message or the help of the given subcommand(s)
|
||||
|
||||
$ 03_04_subcommands help add
|
||||
$ 03_04_subcommands_derive help add
|
||||
clap-add [..]
|
||||
Adds files to myapp
|
||||
|
||||
USAGE:
|
||||
03_04_subcommands[EXE] add [NAME]
|
||||
03_04_subcommands_derive[EXE] add [NAME]
|
||||
|
||||
ARGS:
|
||||
<NAME>
|
||||
|
@ -28,20 +28,20 @@ OPTIONS:
|
|||
-h, --help Print help information
|
||||
-V, --version Print version information
|
||||
|
||||
$ 03_04_subcommands add bob
|
||||
$ 03_04_subcommands_derive add bob
|
||||
'myapp add' was used, name is: Some("bob")
|
||||
|
||||
```
|
||||
|
||||
Because we used `command: Commands` instead of `command: Option<Commands>`:
|
||||
```console
|
||||
$ 03_04_subcommands
|
||||
$ 03_04_subcommands_derive
|
||||
? failed
|
||||
clap [..]
|
||||
A simple to use, efficient, and full-featured Command Line Argument Parser
|
||||
|
||||
USAGE:
|
||||
03_04_subcommands[EXE] <SUBCOMMAND>
|
||||
03_04_subcommands_derive[EXE] <SUBCOMMAND>
|
||||
|
||||
OPTIONS:
|
||||
-h, --help Print help information
|
||||
|
@ -55,10 +55,10 @@ SUBCOMMANDS:
|
|||
|
||||
Because we added `#[clap(propagate_version = true)]`:
|
||||
```console
|
||||
$ 03_04_subcommands --version
|
||||
$ 03_04_subcommands_derive --version
|
||||
clap [..]
|
||||
|
||||
$ 03_04_subcommands add --version
|
||||
$ 03_04_subcommands_derive add --version
|
||||
clap-add [..]
|
||||
|
||||
```
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
```console
|
||||
$ 03_05_default_values --help
|
||||
$ 03_05_default_values_derive --help
|
||||
clap [..]
|
||||
A simple to use, efficient, and full-featured Command Line Argument Parser
|
||||
|
||||
USAGE:
|
||||
03_05_default_values[EXE] [NAME]
|
||||
03_05_default_values_derive[EXE] [NAME]
|
||||
|
||||
ARGS:
|
||||
<NAME> [default: alice]
|
||||
|
@ -13,10 +13,10 @@ OPTIONS:
|
|||
-h, --help Print help information
|
||||
-V, --version Print version information
|
||||
|
||||
$ 03_05_default_values
|
||||
NAME: "alice"
|
||||
$ 03_05_default_values_derive
|
||||
name: "alice"
|
||||
|
||||
$ 03_05_default_values bob
|
||||
NAME: "bob"
|
||||
$ 03_05_default_values_derive bob
|
||||
name: "bob"
|
||||
|
||||
```
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
```console
|
||||
$ 04_01_enum --help
|
||||
$ 04_01_enum_derive --help
|
||||
clap [..]
|
||||
A simple to use, efficient, and full-featured Command Line Argument Parser
|
||||
|
||||
USAGE:
|
||||
04_01_enum[EXE] <MODE>
|
||||
04_01_enum_derive[EXE] <MODE>
|
||||
|
||||
ARGS:
|
||||
<MODE> What mode to run the program in [possible values: fast, slow]
|
||||
|
@ -13,13 +13,13 @@ OPTIONS:
|
|||
-h, --help Print help information
|
||||
-V, --version Print version information
|
||||
|
||||
$ 04_01_enum fast
|
||||
$ 04_01_enum_derive fast
|
||||
Hare
|
||||
|
||||
$ 04_01_enum slow
|
||||
$ 04_01_enum_derive slow
|
||||
Tortoise
|
||||
|
||||
$ 04_01_enum medium
|
||||
$ 04_01_enum_derive medium
|
||||
? failed
|
||||
error: "medium" isn't a valid value for '<MODE>'
|
||||
[possible values: fast, slow]
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
```console
|
||||
$ 04_02_parse --help
|
||||
$ 04_02_parse_derive --help
|
||||
clap [..]
|
||||
A simple to use, efficient, and full-featured Command Line Argument Parser
|
||||
|
||||
USAGE:
|
||||
04_02_parse[EXE] <PORT>
|
||||
04_02_parse_derive[EXE] <PORT>
|
||||
|
||||
ARGS:
|
||||
<PORT> Network port to use
|
||||
|
@ -13,10 +13,10 @@ OPTIONS:
|
|||
-h, --help Print help information
|
||||
-V, --version Print version information
|
||||
|
||||
$ 04_02_parse 22
|
||||
$ 04_02_parse_derive 22
|
||||
PORT = 22
|
||||
|
||||
$ 04_02_parse foobar
|
||||
$ 04_02_parse_derive foobar
|
||||
? failed
|
||||
error: Invalid value "foobar" for '<PORT>': invalid digit found in string
|
||||
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
```console
|
||||
$ 04_02_validate --help
|
||||
$ 04_02_validate_derive --help
|
||||
clap [..]
|
||||
A simple to use, efficient, and full-featured Command Line Argument Parser
|
||||
|
||||
USAGE:
|
||||
04_02_validate[EXE] <PORT>
|
||||
04_02_validate_derive[EXE] <PORT>
|
||||
|
||||
ARGS:
|
||||
<PORT> Network port to use
|
||||
|
@ -13,16 +13,16 @@ OPTIONS:
|
|||
-h, --help Print help information
|
||||
-V, --version Print version information
|
||||
|
||||
$ 04_02_validate 22
|
||||
$ 04_02_validate_derive 22
|
||||
PORT = 22
|
||||
|
||||
$ 04_02_validate foobar
|
||||
$ 04_02_validate_derive foobar
|
||||
? failed
|
||||
error: Invalid value "foobar" for '<PORT>': `foobar` isn't a port number
|
||||
|
||||
For more information try --help
|
||||
|
||||
$ 04_02_validate 0
|
||||
$ 04_02_validate_derive 0
|
||||
? failed
|
||||
error: Invalid value "0" for '<PORT>': Port not in range 1-65535
|
||||
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
```console
|
||||
$ 04_03_relations --help
|
||||
$ 04_03_relations_derive --help
|
||||
clap [..]
|
||||
A simple to use, efficient, and full-featured Command Line Argument Parser
|
||||
|
||||
USAGE:
|
||||
04_03_relations[EXE] [OPTIONS] <--set-ver <VER>|--major|--minor|--patch> [INPUT_FILE]
|
||||
04_03_relations_derive[EXE] [OPTIONS] <--set-ver <VER>|--major|--minor|--patch> [INPUT_FILE]
|
||||
|
||||
ARGS:
|
||||
<INPUT_FILE> some regular input
|
||||
|
@ -19,39 +19,39 @@ OPTIONS:
|
|||
-h, --help Print help information
|
||||
-V, --version Print version information
|
||||
|
||||
$ 04_03_relations
|
||||
$ 04_03_relations_derive
|
||||
? failed
|
||||
error: The following required arguments were not provided:
|
||||
<--set-ver <VER>|--major|--minor|--patch>
|
||||
|
||||
USAGE:
|
||||
04_03_relations[EXE] [OPTIONS] <--set-ver <VER>|--major|--minor|--patch> [INPUT_FILE]
|
||||
04_03_relations_derive[EXE] [OPTIONS] <--set-ver <VER>|--major|--minor|--patch> [INPUT_FILE]
|
||||
|
||||
For more information try --help
|
||||
|
||||
$ 04_03_relations --major
|
||||
$ 04_03_relations_derive --major
|
||||
Version: 2.2.3
|
||||
|
||||
$ 04_03_relations --major --minor
|
||||
$ 04_03_relations_derive --major --minor
|
||||
? failed
|
||||
error: The argument '--major' cannot be used with '--minor'
|
||||
|
||||
USAGE:
|
||||
04_03_relations[EXE] <--set-ver <VER>|--major|--minor|--patch>
|
||||
04_03_relations_derive[EXE] <--set-ver <VER>|--major|--minor|--patch>
|
||||
|
||||
For more information try --help
|
||||
|
||||
$ 04_03_relations --major -c config.toml
|
||||
$ 04_03_relations_derive --major -c config.toml
|
||||
? failed
|
||||
error: The following required arguments were not provided:
|
||||
<INPUT_FILE|--spec-in <SPEC_IN>>
|
||||
|
||||
USAGE:
|
||||
04_03_relations[EXE] -c <CONFIG> <--set-ver <VER>|--major|--minor|--patch> <INPUT_FILE|--spec-in <SPEC_IN>>
|
||||
04_03_relations_derive[EXE] -c <CONFIG> <--set-ver <VER>|--major|--minor|--patch> <INPUT_FILE|--spec-in <SPEC_IN>>
|
||||
|
||||
For more information try --help
|
||||
|
||||
$ 04_03_relations --major -c config.toml --spec-in input.txt
|
||||
$ 04_03_relations_derive --major -c config.toml --spec-in input.txt
|
||||
Version: 2.2.3
|
||||
Doing work using input input.txt and config config.toml
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ use clap::{ArgGroup, Parser};
|
|||
#[clap(group(
|
||||
ArgGroup::new("vers")
|
||||
.required(true)
|
||||
.args(&["set-ver", "major", "minor", "patch"]),
|
||||
.args(&["set_ver", "major", "minor", "patch"]),
|
||||
))]
|
||||
struct Cli {
|
||||
/// set version manually
|
||||
|
@ -44,7 +44,7 @@ fn main() {
|
|||
let mut minor = 2;
|
||||
let mut patch = 3;
|
||||
|
||||
// See if --set-ver was used to set the version manually
|
||||
// See if --set_ver was used to set the version manually
|
||||
let version = if let Some(ver) = cli.set_ver.as_deref() {
|
||||
ver.to_string()
|
||||
} else {
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
```console
|
||||
$ 04_04_custom --help
|
||||
$ 04_04_custom_derive --help
|
||||
clap [..]
|
||||
A simple to use, efficient, and full-featured Command Line Argument Parser
|
||||
|
||||
USAGE:
|
||||
04_04_custom[EXE] [OPTIONS] [INPUT_FILE]
|
||||
04_04_custom_derive[EXE] [OPTIONS] [INPUT_FILE]
|
||||
|
||||
ARGS:
|
||||
<INPUT_FILE> some regular input
|
||||
|
@ -19,38 +19,38 @@ OPTIONS:
|
|||
-h, --help Print help information
|
||||
-V, --version Print version information
|
||||
|
||||
$ 04_04_custom
|
||||
$ 04_04_custom_derive
|
||||
? failed
|
||||
error: Can only modify one version field
|
||||
|
||||
USAGE:
|
||||
04_04_custom[EXE] [OPTIONS] [INPUT_FILE]
|
||||
clap [OPTIONS] [INPUT_FILE]
|
||||
|
||||
For more information try --help
|
||||
|
||||
$ 04_04_custom --major
|
||||
$ 04_04_custom_derive --major
|
||||
Version: 2.2.3
|
||||
|
||||
$ 04_04_custom --major --minor
|
||||
$ 04_04_custom_derive --major --minor
|
||||
? failed
|
||||
error: Can only modify one version field
|
||||
|
||||
USAGE:
|
||||
04_04_custom[EXE] [OPTIONS] [INPUT_FILE]
|
||||
clap [OPTIONS] [INPUT_FILE]
|
||||
|
||||
For more information try --help
|
||||
|
||||
$ 04_04_custom --major -c config.toml
|
||||
$ 04_04_custom_derive --major -c config.toml
|
||||
? failed
|
||||
Version: 2.2.3
|
||||
error: INPUT_FILE or --spec-in is required when using --config
|
||||
|
||||
USAGE:
|
||||
04_04_custom[EXE] [OPTIONS] [INPUT_FILE]
|
||||
clap [OPTIONS] [INPUT_FILE]
|
||||
|
||||
For more information try --help
|
||||
|
||||
$ 04_04_custom --major -c config.toml --spec-in input.txt
|
||||
$ 04_04_custom_derive --major -c config.toml --spec-in input.txt
|
||||
Version: 2.2.3
|
||||
Doing work using input input.txt and config config.toml
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue