package arg import ( "fmt" "os" ) // This example demonstrates basic usage func Example() { // 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 } 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" 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 } 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"` } 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 } 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"` } MustParse(&args) }