Documentation
¶
Overview ¶
Package optionparser is a library for defining and parsing command line options. It aims to provide a natural language interface for defining short and long parameters and mandatory and optional arguments. It provides the user for nice output formatting on the built in method '--help'.
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type OptionParser ¶
type OptionParser struct { Extra []string Banner string Coda string Start int Stop int // contains filtered or unexported fields }
OptionParser contains the methods to parse options and the settings to influence the output of --help. Set the Banner and Coda for usage info, set Start and Stop for output of the long description text.
func NewOptionParser ¶
func NewOptionParser() *OptionParser
NewOptionParser initializes the OptionParser struct with sane settings for Banner, Start and Stop and adds a "-h", "--help" option for convenience.
func (*OptionParser) Command ¶
func (op *OptionParser) Command(cmd string, helptext string)
Command defines optional arguments to the command line. These are written in a separate section called 'Commands' on --help.
func (*OptionParser) Help ¶
func (op *OptionParser) Help()
Help prints help text generated from the "On" commands
Example ¶
op := NewOptionParser() var str string var options = make(map[string]string) var truefalse bool var stringslice []string myfunc := func() { return } op.On("-a", "--func", "call myfunc", myfunc) op.On("--bstring FOO", "set string to FOO", &str) op.On("-c", "set boolean option (try -no-c)", options) op.On("-d", "--dlong VAL", "set option", options) op.On("-e", "--elong [VAL]", "set option with optional parameter", options) op.On("-f", "boolean option", &truefalse) op.On("-g VALUES", "give multiple values", &stringslice) op.Help()
Output: Usage: [parameter] command -h, --help Show this help -a, --func call myfunc --bstring=FOO set string to FOO -c set boolean option (try -no-c) -d, --dlong=VAL set option -e, --elong[=VAL] set option with optional parameter -f boolean option -g=VALUES give multiple values
func (*OptionParser) On ¶
func (op *OptionParser) On(a ...interface{})
On defines arguments and parameters. Each argument is one of:
- a short option, such as "-x",
- a long option, such as "--extra",
- a long option with an argument such as "--extra FOO" (or "--extra=FOO") for a mandatory argument,
- a long option with an argument in brackets, e.g. "--extra [FOO]" for a parameter with optional argument,
- a string (not starting with "-") used for the parameter description, e.g. "This parameter does this and that",
- a string variable in the form of &str that is used for saving the result of the argument,
- a variable of type map[string]string which is used to store the result (the parameter name is the key, the value is either the string true or the argument given on the command line)
- a variable of type *[]string which gets a comma separated list of values,
- a bool variable (in the form &bool) to hold a boolean value, or
- a function in the form of func() or in the form of func(string) which gets called if the command line parameter is found.
On panics if the user supplies is an type in its argument other the ones given above.
op := optionparser.NewOptionParser() op.On("-a", "--func", "call myfunc", myfunc) op.On("--bstring FOO", "set string to FOO", &somestring) op.On("-c", "set boolean option (try -no-c)", options) op.On("-d", "--dlong VAL", "set option", options) op.On("-e", "--elong [VAL]", "set option with optional parameter", options) op.On("-f", "boolean option", &truefalse) op.On("-g VALUES", "give multiple values", &stringslice)
and running the program with --help gives the following output:
go run main.go --help Usage: [parameter] command -h, --help Show this help -a, --func call myfunc --bstring=FOO set string to FOO -c set boolean option (try -no-c) -d, --dlong=VAL set option -e, --elong[=VAL] set option with optional parameter -f boolean option -g=VALUES give multiple values
func (*OptionParser) Parse ¶
func (op *OptionParser) Parse() error
Parse takes the command line arguments as found in os.Args and interprets them. If it finds an unknown option or a missing mandatory argument, it returns an error.
func (*OptionParser) ParseFrom ¶ added in v1.0.3
func (op *OptionParser) ParseFrom(args []string) error
ParseFrom takes a slice of string arguments and interprets them. If it finds an unknown option or a missing mandatory argument, it returns an error.