Documentation
¶
Overview ¶
Package arg parses command line arguments using the fields from a struct.
For example,
var args struct { Iter int Debug bool } arg.MustParse(&args)
defines two command line arguments, which can be set using any of
./example --iter=1 --debug // debug is a boolean flag so its value is set to true ./example -iter 1 // debug defaults to its zero value (false) ./example --debug=true // iter defaults to its zero value (zero)
The fastest way to see how to use go-arg is to read the examples below.
Fields can be bool, string, any float type, or any signed or unsigned integer type. They can also be slices of any of the above, or slices of pointers to any of the above.
Tags can be specified using the `arg` package name:
var args struct { Input string `arg:"positional"` Log string `arg:"positional,required"` Debug bool `arg:"-d,help:turn on debug mode"` RealMode bool `arg:"--real" Wr io.Writer `arg:"-"` }
The valid tag strings are `positional`, `required`, and `help`. Further, any tag string that starts with a single hyphen is the short form for an argument (e.g. `./example -d`), and any tag string that starts with two hyphens is the long form for the argument (instead of the field name). Fields can be excluded from processing with `arg:"-"`.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ErrHelp = errors.New("help requested by user")
ErrHelp indicates that -h or --help were provided
Functions ¶
Types ¶
type Parser ¶
type Parser struct {
// contains filtered or unexported fields
}
Parser represents a set of command line options with destination values
func (*Parser) Parse ¶
Parse processes the given command line option, storing the results in the field of the structs from which NewParser was constructed
func (*Parser) WriteHelp ¶
WriteHelp writes the usage string followed by the full help string for each option
func (*Parser) WriteUsage ¶
WriteUsage writes usage information to the given writer