From b780c1a929f3788fd783346b5206bec7f0bb1d69 Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Mon, 1 Jan 2024 01:49:53 -0600 Subject: more work on registration of flags Signed-off-by: Jeff Carr --- flags.go | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) (limited to 'flags.go') diff --git a/flags.go b/flags.go index de58c8d..d8d886a 100644 --- a/flags.go +++ b/flags.go @@ -11,24 +11,25 @@ var ERROR bool = true var VERBOSE bool = false // var SPEW bool = false -var SPEW logFlag +var SPEW LogFlag -type logFlag struct { - b bool - name string - pkg string - desc string +type LogFlag struct { + B bool + Name string + Subsystem string + Desc string } var registered map[string][]string +var flags []*LogFlag func init() { registered = make(map[string][]string) - SPEW.b = false - SPEW.name = "SPEW" - SPEW.pkg = "log" - SPEW.desc = "Enable log.Spew()" + SPEW.B = false + SPEW.Name = "SPEW" + SPEW.Subsystem = "log" + SPEW.Desc = "Enable log.Spew()" // register the default flags used by this log package registered["log"] = []string{"SPEW","INFO", "WARN", "ERROR", "VERBOSE"} @@ -43,6 +44,11 @@ func All(b bool) { } func ListFlags() map[string][]string { + Info("ListFlags() registered =", registered) + for _, f := range flags { + Info("ListFlags() flag B =", f.B, "Name =", f.Name, "Subsystem =", f.Subsystem, "Description:", f.Desc) + } + return registered } @@ -53,7 +59,7 @@ func Set(flag string, b bool) { case "WARN": WARN = b case "SPEW": - SPEW.b = b + SPEW.B = b case "ERROR": ERROR = b case "VERBOSE": @@ -70,7 +76,7 @@ func Get(flag string) bool { case "WARN": return WARN case "SPEW": - return SPEW.b + return SPEW.B case "ERROR": return ERROR case "VERBOSE": @@ -81,6 +87,12 @@ func Get(flag string) bool { return false } +// register a variable name from a subsystem +func (f *LogFlag) Register() { + Info("log.Register() ", f) + flags = append(flags,f) +} + // register a variable name from a subsystem // this is used for custom log flags func Register(subsystem string, name string, b *bool) { -- cgit v1.2.3