From c47edd03248733b0f5208ca02682f2161d23a8b9 Mon Sep 17 00:00:00 2001 From: Alex Flint Date: Thu, 6 Aug 2020 16:41:45 -0700 Subject: [PATCH] add documentation and examples showing how to override the short and long option names together --- README.md | 25 ++++++++++++++++++++++++- example_test.go | 6 +++--- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 3526872..a9555b9 100644 --- a/README.md +++ b/README.md @@ -125,7 +125,7 @@ Workers: [1 99] var args struct { Input string `arg:"positional"` Output []string `arg:"positional"` - Verbose bool `arg:"-v" help:"verbosity level"` + Verbose bool `arg:"-v,--verbose" help:"verbosity level"` Dataset string `help:"dataset to use"` Optimize int `arg:"-O" help:"optimization level"` } @@ -240,6 +240,29 @@ $ ./example --version someprogram 4.3.0 ``` +### Overriding option names + +```go +var args struct { + Short string `arg:"-s"` + Long string `arg:"--custom-long-option"` + ShortAndLong string `arg:"-x,--my-option"` +} +arg.MustParse(&args) +``` + +```shell +$ ./example --help +Usage: [--short SHORT] [--custom-long-option CUSTOM-LONG-OPTION] [--my-option MY-OPTION] + +Options: + --short SHORT, -s SHORT + --custom-long-option CUSTOM-LONG-OPTION + --my-option MY-OPTION, -x MY-OPTION + --help, -h display this help and exit +``` + + ### Embedded structs The fields of embedded structs are treated just like regular fields: diff --git a/example_test.go b/example_test.go index 4e6372f..9091151 100644 --- a/example_test.go +++ b/example_test.go @@ -112,7 +112,7 @@ func Example_helpText() { Output []string `arg:"positional"` Verbose bool `arg:"-v" help:"verbosity level"` Dataset string `help:"dataset to use"` - Optimize int `arg:"-O,help:optimization level"` + Optimize int `arg:"-O,--optim" help:"optimization level"` } // This is only necessary when running inside golang's runnable example harness @@ -121,7 +121,7 @@ func Example_helpText() { MustParse(&args) // output: - // Usage: example [--verbose] [--dataset DATASET] [--optimize OPTIMIZE] INPUT [OUTPUT [OUTPUT ...]] + // Usage: example [--verbose] [--dataset DATASET] [--optim OPTIM] INPUT [OUTPUT [OUTPUT ...]] // // Positional arguments: // INPUT @@ -130,7 +130,7 @@ func Example_helpText() { // Options: // --verbose, -v verbosity level // --dataset DATASET dataset to use - // --optimize OPTIMIZE, -O OPTIMIZE + // --optim OPTIM, -O OPTIM // optimization level // --help, -h display this help and exit }