summaryrefslogtreecommitdiff
path: root/example_test.go
diff options
context:
space:
mode:
authorAlex Flint <[email protected]>2015-11-01 11:34:22 -0800
committerAlex Flint <[email protected]>2015-11-01 11:34:22 -0800
commitbeede9329ae104d7db320406a63621b5bda03a36 (patch)
tree37c49c98e5c03e9d882dd0b5bbc3935f37705003 /example_test.go
parent30befae91a472e767b021961620ac0d93e6ff11d (diff)
added runnable examples
Diffstat (limited to 'example_test.go')
-rw-r--r--example_test.go89
1 files changed, 89 insertions, 0 deletions
diff --git a/example_test.go b/example_test.go
new file mode 100644
index 0000000..d2febf6
--- /dev/null
+++ b/example_test.go
@@ -0,0 +1,89 @@
+package arg
+
+import (
+ "fmt"
+ "os"
+
+ "github.com/alexflint/go-arg"
+)
+
+// This example demonstrates basic usage
+func Example_Basic() {
+ // These are the args you would pass in on the command line
+ os.Args = []string{"./example", "--foo=hello", "--bar"}
+
+ var args struct {
+ Foo string
+ Bar bool
+ }
+ arg.MustParse(&args)
+ fmt.Println(args.Foo, args.Bar)
+}
+
+// This example demonstrates arguments that have default values
+func Example_DefaultValues() {
+ // These are the args you would pass in on the command line
+ os.Args = []string{"--help"}
+
+ var args struct {
+ Foo string
+ Bar bool
+ }
+ args.Foo = "default value"
+ arg.MustParse(&args)
+ fmt.Println(args.Foo, args.Bar)
+}
+
+// This example demonstrates arguments that are required
+func Example_RequiredArguments() {
+ // These are the args you would pass in on the command line
+ os.Args = []string{"--foo=1", "--bar"}
+
+ var args struct {
+ Foo string `arg:"required"`
+ Bar bool
+ }
+ arg.MustParse(&args)
+}
+
+// This example demonstrates positional arguments
+func Example_PositionalArguments() {
+ // These are the args you would pass in on the command line
+ os.Args = []string{"./example", "in", "out1", "out2", "out3"}
+
+ var args struct {
+ Input string `arg:"positional"`
+ Output []string `arg:"positional"`
+ }
+ arg.MustParse(&args)
+ fmt.Println("Input:", args.Input)
+ fmt.Println("Output:", args.Output)
+}
+
+// This example demonstrates arguments that have multiple values
+func Example_MultipleValues() {
+ // The args you would pass in on the command line
+ os.Args = []string{"--help"}
+
+ var args struct {
+ Database string
+ IDs []int64
+ }
+ arg.MustParse(&args)
+ fmt.Printf("Fetching the following IDs from %s: %q", args.Database, args.IDs)
+}
+
+// This example shows the usage string generated by go-arg
+func Example_Usage() {
+ // These are the args you would pass in on the command line
+ os.Args = []string{"--help"}
+
+ var args struct {
+ Input string `arg:"positional"`
+ Output []string `arg:"positional"`
+ Verbose bool `arg:"-v,help:verbosity level"`
+ Dataset string `arg:"help:dataset to use"`
+ Optimize int `arg:"-O,help:optimization level"`
+ }
+ arg.MustParse(&args)
+}