diff --git a/doc.go b/doc.go new file mode 100644 index 0000000..500ec83 --- /dev/null +++ b/doc.go @@ -0,0 +1,36 @@ +// 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:"-"`. +package arg diff --git a/parse.go b/parse.go index 923e749..a9e509f 100644 --- a/parse.go +++ b/parse.go @@ -1,38 +1,3 @@ -// 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:"-"`. package arg import (