diff options
| -rw-r--r-- | exit.go | 22 | ||||
| -rw-r--r-- | init.go | 7 | ||||
| -rw-r--r-- | structs.go | 3 |
3 files changed, 31 insertions, 1 deletions
@@ -0,0 +1,22 @@ +package ENV + +import "os" + +// this is an experiment at this point to +// see how this turns out + +// argv normally sets these callbacks +// argv has timing set from when os.Args was parsed +func GoodExit(reason string, err error) { + if goodExit != nil { + goodExit(reason) + } + os.Exit(0) +} + +func BadExit(reason string, err error) { + if badExit != nil { + badExit(reason, err) + } + os.Exit(-1) +} @@ -3,16 +3,21 @@ package ENV // this is an experiment at this point to // see how this turns out -func Init(appname, version, buildtime string, fromargv []string) error { +func Init(appname, version, buildtime string, fromargv []string, goodFunc func(string), badFunc func(string, error)) error { APPNAME = appname VERSION = version BUILDTIME = buildtime argv = fromargv + goodExit = goodFunc + badExit = badFunc err := loadENV() if err == nil { envPB.Init = true } + SetGlobal("lib/ENV", "APPNAME", APPNAME) + SetGlobal("lib/ENV", "VERSION", VERSION) + SetGlobal("lib/ENV", "BUILDTIME", BUILDTIME) return err } @@ -15,6 +15,9 @@ var APPNAME string var BUILDTIME string var VERSION string +var goodExit func(string) +var badExit func(string, error) + var argv []string var NotInitialized error = errors.New("your application config not initialized") |
