From 22c73471e6ceb1674072338cea99c3124ca2a648 Mon Sep 17 00:00:00 2001 From: Alex Flint Date: Sat, 31 Oct 2015 18:46:56 -0700 Subject: [PATCH] add README --- README.md | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..d45a31f --- /dev/null +++ b/README.md @@ -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] +```