]> ruderich.org/simon Gitweb - safcm/safcm.git/blobdiff - log.go
Use SPDX license identifiers
[safcm/safcm.git] / log.go
diff --git a/log.go b/log.go
index 029d975be89cf7247b749d9ba3bc1e73414160bb..79c573cae79e4e27e786e8faa5f067a5df20c11a 100644 (file)
--- a/log.go
+++ b/log.go
@@ -1,22 +1,14 @@
 // RPC primitives for safcm: logging constants
 
-// Copyright (C) 2021  Simon Ruderich
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
+// SPDX-License-Identifier: GPL-3.0-or-later
+// Copyright (C) 2021-2024  Simon Ruderich
 
 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 +29,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
+}