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_UsageString() { // 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) }