| @ -0,0 +1,89 @@ | |||||
| Argument parsing for Go. | |||||
| ```golang | |||||
| var args struct { | |||||
| Foo string | |||||
| Bar bool | |||||
| } | |||||
| arg.MustParse(&args) | |||||
| fmt.Println(args.Foo) | |||||
| fmt.Println(args.Bar) | |||||
| ``` | |||||
| ```bash | |||||
| $ ./example --foo=hello --bar | |||||
| hello | |||||
| True | |||||
| ``` | |||||
| Setting defaults values: | |||||
| ```golang | |||||
| var args struct { | |||||
| Foo string | |||||
| Bar bool | |||||
| } | |||||
| args.Foo = "default value" | |||||
| arg.MustParse(&args) | |||||
| ``` | |||||
| Marking options as required | |||||
| ```golang | |||||
| var args struct { | |||||
| Foo string `arg:"required"` | |||||
| Bar bool | |||||
| } | |||||
| arg.MustParse(&args) | |||||
| ``` | |||||
| Positional argument: | |||||
| ```golang | |||||
| var args struct { | |||||
| Input string `arg:"positional"` | |||||
| Output []string `arg:"positional"` | |||||
| Verbose bool | |||||
| } | |||||
| arg.MustParse(&args) | |||||
| fmt.Println("Input:", input) | |||||
| fmt.Println("Output:", output) | |||||
| ``` | |||||
| ``` | |||||
| $ ./example src.txt x.out y.out z.out | |||||
| Input: src.txt | |||||
| Output: [x.out y.out z.out] | |||||
| ``` | |||||
| Usage strings: | |||||
| ```bash | |||||
| $ ./example -h | |||||
| usage: [--verbose] [--dataset DATASET] [--optimize OPTIMIZE] [--help] INPUT [OUTPUT [OUTPUT ...]] | |||||
| positional arguments: | |||||
| input | |||||
| output | |||||
| options: | |||||
| --verbose, -v verbosity level | |||||
| --dataset DATASET dataset to use | |||||
| --optimize OPTIMIZE, -O OPTIMIZE | |||||
| optimization level | |||||
| --help, -h print this help message | |||||
| ``` | |||||
| Options with multiple values: | |||||
| ``` | |||||
| var args struct { | |||||
| Database string | |||||
| IDs []int64 | |||||
| } | |||||
| arg.MustParse(&args) | |||||
| fmt.Printf("Fetching the following IDs from %s: %q", args.Database, args.IDs) | |||||
| ``` | |||||
| ```bash | |||||
| ./example -database foo -ids 1 2 3 | |||||
| Fetching the following IDs from foo: [1 2 3] | |||||
| ``` | |||||