allows GO libraries to have common args
This commit is contained in:
parent
e778224db2
commit
6cc03a124c
|
@ -0,0 +1,18 @@
|
||||||
|
all:
|
||||||
|
@echo
|
||||||
|
@echo
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f go.*
|
||||||
|
|
||||||
|
redomod:
|
||||||
|
rm -f go.*
|
||||||
|
GO111MODULE= go mod init
|
||||||
|
GO111MODULE= go mod tidy
|
||||||
|
|
||||||
|
vet:
|
||||||
|
@GO111MODULE=off go vet
|
||||||
|
@echo this go binary package builds okay
|
||||||
|
|
||||||
|
goimports:
|
||||||
|
goimports -w *.go
|
19
parse.go
19
parse.go
|
@ -80,9 +80,26 @@ var ErrVersion = errors.New("version requested by user")
|
||||||
var mustParseExit = os.Exit
|
var mustParseExit = os.Exit
|
||||||
var mustParseOut io.Writer = os.Stdout
|
var mustParseOut io.Writer = os.Stdout
|
||||||
|
|
||||||
|
/*
|
||||||
|
This allows you to have common arg values defined in a GO package
|
||||||
|
|
||||||
|
package 'foo'
|
||||||
|
function init() {
|
||||||
|
args.Register(&argsFoo)
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
// This stores the args sent from the GO packages
|
||||||
|
var register []interface{}
|
||||||
|
|
||||||
|
func Register(dest ...interface{}) {
|
||||||
|
register = append(register, dest...)
|
||||||
|
}
|
||||||
|
|
||||||
// MustParse processes command line arguments and exits upon failure
|
// MustParse processes command line arguments and exits upon failure
|
||||||
func MustParse(dest ...interface{}) *Parser {
|
func MustParse(dest ...interface{}) *Parser {
|
||||||
return mustParse(Config{Exit: mustParseExit, Out: mustParseOut}, dest...)
|
register = append(register, dest...)
|
||||||
|
return mustParse(Config{Exit: mustParseExit, Out: mustParseOut}, register...)
|
||||||
}
|
}
|
||||||
|
|
||||||
// mustParse is a helper that facilitates testing
|
// mustParse is a helper that facilitates testing
|
||||||
|
|
Loading…
Reference in New Issue