arg/example_test.go

88 lines
2.1 KiB
Go

package arg
import (
"fmt"
"os"
)
// 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
}
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)
}