summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md89
1 files changed, 89 insertions, 0 deletions
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]
+```