Matthew Maurer | 32e7669 | 2020-06-02 11:15:15 -0700 | [diff] [blame] | 1 | # Collection of examples "how to use `structopt`" |
| 2 | |
| 3 | ### [Help on the bottom](after_help.rs) |
| 4 | |
| 5 | How to append a postscript to the help message generated. |
| 6 | |
| 7 | ### [At least N](at_least_two.rs) |
| 8 | |
| 9 | How to require presence of at least N values, like `val1 val2 ... valN ... valM`. |
| 10 | |
| 11 | ### [Basic](basic.rs) |
| 12 | |
| 13 | A basic example how to use `structopt`. |
| 14 | |
| 15 | ### [Deny missing docs](deny_missing_docs.rs) |
| 16 | |
| 17 | **This is not an example but a test**, it should be moved to `tests` folder |
| 18 | as soon as [this](https://github.com/rust-lang/rust/issues/24584) is fixed (if ever). |
| 19 | |
| 20 | ### [Doc comments](doc_comments.rs) |
| 21 | |
| 22 | How to use doc comments in place of `help/long_help`. |
| 23 | |
| 24 | ### [Enums as arguments](enum_in_args.rs) |
| 25 | |
| 26 | How to use `arg_enum!` with `StructOpt`. |
| 27 | |
| 28 | ### [Arguments of subcommands in separate `struct`](enum_tuple.rs) |
| 29 | |
| 30 | How to extract subcommands' args into external structs. |
| 31 | |
| 32 | ### [Environment variables](env.rs) |
| 33 | |
| 34 | How to use environment variable fallback an how it interacts with `default_value`. |
| 35 | |
| 36 | ### [Advanced](example.rs) |
| 37 | |
| 38 | Somewhat complex example of usage of `structopt`. |
| 39 | |
| 40 | ### [Flatten](flatten.rs) |
| 41 | |
| 42 | How to use `#[structopt(flatten)]` |
| 43 | |
| 44 | ### [`bash` completions](gen_completions.rs) |
| 45 | |
| 46 | Generating `bash` completions with `structopt`. |
| 47 | |
| 48 | ### [Git](git.rs) |
| 49 | |
| 50 | Pseudo-`git` example, shows how to use subcommands and how to document them. |
| 51 | |
| 52 | ### [Groups](group.rs) |
| 53 | |
| 54 | Using `clap::Arg::group` with `structopt`. |
| 55 | |
| 56 | ### [`key=value` pairs](keyvalue.rs) |
| 57 | |
| 58 | How to parse `key=value` pairs. |
| 59 | |
| 60 | ### [`--no-*` flags](negative_flag.rs) |
| 61 | |
| 62 | How to add `no-thing` flag which is `true` by default and `false` if passed. |
| 63 | |
| 64 | ### [No version](no_version.rs) |
| 65 | |
| 66 | How to completely remove version. |
| 67 | |
| 68 | ### [Rename all](rename_all.rs) |
| 69 | |
| 70 | How `#[structopt(rename_all)]` works. |
| 71 | |
Haibo Huang | e7bfadf | 2020-09-23 21:23:42 -0700 | [diff] [blame] | 72 | ### [Required If](required_if.rs) |
| 73 | |
| 74 | How to use `#[structopt(required_if)]`. |
| 75 | |
Matthew Maurer | 32e7669 | 2020-06-02 11:15:15 -0700 | [diff] [blame] | 76 | ### [Skip](skip.rs) |
| 77 | |
| 78 | How to use `#[structopt(skip)]`. |
| 79 | |
| 80 | ### [Aliases](subcommand_aliases.rs) |
| 81 | |
| 82 | How to use aliases |
| 83 | |
| 84 | ### [`true` or `false`](true_or_false.rs) |
| 85 | |
| 86 | How to express "`"true"` or `"false"` argument. |