]> ruderich.org/simon Gitweb - safcm/safcm.git/commitdiff
safcm: add ParseLogLevel()
authorSimon Ruderich <simon@ruderich.org>
Tue, 18 May 2021 15:52:14 +0000 (17:52 +0200)
committerSimon Ruderich <simon@ruderich.org>
Tue, 18 May 2021 16:23:47 +0000 (18:23 +0200)
cmd/safcm/sync.go
log.go

index 5776264d589c628030b1fe36abb8086311b13319..10edc68755e98c81e2c890745d3e3f706d3a3691 100644 (file)
@@ -66,22 +66,9 @@ func MainSync(args []string) error {
 
        flag.CommandLine.Parse(args[2:])
 
-       var level safcm.LogLevel
-       switch *optionLog {
-       case "error":
-               level = safcm.LogError
-       case "info":
-               level = safcm.LogInfo
-       case "verbose":
-               level = safcm.LogVerbose
-       case "debug":
-               level = safcm.LogDebug
-       case "debug2":
-               level = safcm.LogDebug2
-       case "debug3":
-               level = safcm.LogDebug3
-       default:
-               return fmt.Errorf("invalid -log value %q", *optionLog)
+       level, err := safcm.ParseLogLevel(*optionLog)
+       if err != nil {
+               return fmt.Errorf("-log: %v", err)
        }
 
        names := flag.Args()
diff --git a/log.go b/log.go
index 029d975be89cf7247b749d9ba3bc1e73414160bb..6e063ceb12345526b269fc3960bec49d2e32beb9 100644 (file)
--- a/log.go
+++ b/log.go
 
 package safcm
 
+import (
+       "fmt"
+)
+
 // LogLevel controls the number of displayed log messages. Higher levels
 // include all messages from lower levels (e.g. LogVerbose includes all
 // messages from LogInfo).
@@ -37,3 +41,24 @@ const (
        // Log all RPC messages
        LogDebug3
 )
+
+func ParseLogLevel(s string) (LogLevel, error) {
+       var x LogLevel
+       switch s {
+       case "error":
+               x = LogError
+       case "info":
+               x = LogInfo
+       case "verbose":
+               x = LogVerbose
+       case "debug":
+               x = LogDebug
+       case "debug2":
+               x = LogDebug2
+       case "debug3":
+               x = LogDebug3
+       default:
+               return 0, fmt.Errorf("invalid LogLevel %q", s)
+       }
+       return x, nil
+}