2015-11-01 13:34:22 -06:00
|
|
|
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
|
2015-11-01 15:24:35 -06:00
|
|
|
func Example_UsageString() {
|
2015-11-01 13:34:22 -06:00
|
|
|
// 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)
|
|
|
|
}
|