diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..42e9fb2 --- /dev/null +++ b/Makefile @@ -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 diff --git a/parse.go b/parse.go index d5eee12..3566936 100644 --- a/parse.go +++ b/parse.go @@ -80,9 +80,26 @@ var ErrVersion = errors.New("version requested by user") var mustParseExit = os.Exit 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 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