summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-08-29 07:09:32 -0500
committerJeff Carr <[email protected]>2025-08-29 07:09:32 -0500
commit6cc03a124caeea7cdcf3279fdf72a2bdf4cc7fc5 (patch)
tree087aa3605ec52fbe1c980c22ae9cce90d34e86a8
parente778224db2fd0e9e61d93335c98cd6f1ae369077 (diff)
allows GO libraries to have common argsv1.6.1-wittest1
-rw-r--r--Makefile18
-rw-r--r--parse.go19
2 files changed, 36 insertions, 1 deletions
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