diff options
| author | Alex Flint <[email protected]> | 2015-11-01 11:34:22 -0800 |
|---|---|---|
| committer | Alex Flint <[email protected]> | 2015-11-01 11:34:22 -0800 |
| commit | beede9329ae104d7db320406a63621b5bda03a36 (patch) | |
| tree | 37c49c98e5c03e9d882dd0b5bbc3935f37705003 /example_test.go | |
| parent | 30befae91a472e767b021961620ac0d93e6ff11d (diff) | |
added runnable examples
Diffstat (limited to 'example_test.go')
| -rw-r--r-- | example_test.go | 89 |
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) +} |
