adding helper methods

This commit is contained in:
William Dillon 2026-08-12 04:35:14 -04:00
parent 4c88a05b82
commit 5083d3911b

View File

@ -9,6 +9,7 @@ import (
"log"
"os"
"path/filepath"
"strconv"
"strings"
"sync"
"sync/atomic"
@ -174,3 +175,44 @@ func ParseBool(value string) (bool, error) {
return false, fmt.Errorf("cannot parse '%s' as bool", value)
}
}
func (s *Settings) GetStringOrDefault(key, defaultValue string) string {
if got := s.GetKeyValue(key); len(got) > 0 {
return got
} else {
return defaultValue
}
}
func (s *Settings) GetBoolOrDefault(key string, defaultValue bool) bool {
got := s.GetKeyValue(key)
parsed, err := ParseBool(got)
if err == nil {
return parsed
} else if len(got) > 0 {
log.Printf("Settings::GetBoolOrDefault error parsing key %q value %q as bool: %v\n", key, got, err)
}
return defaultValue
}
func (s *Settings) GetDurationOrDefault(key string, defaultValue time.Duration) time.Duration {
got := s.GetKeyValue(key)
dur, err := time.ParseDuration(got)
if err == nil {
return dur
} else if len(got) > 0 {
log.Printf("Settings::GetDurationOrDefault error parsing key %q value %q as time.Duration: %v\n", key, got, err)
}
return defaultValue
}
func (s *Settings) GetIntOrDefault(key string, defaultValue int) int {
got := s.GetKeyValue(key)
n, err := strconv.Atoi(got)
if err == nil {
return n
} else if len(got) > 0 {
log.Printf("Settings::GetIntOrDefault error parsing key %q value %q as int: %v\n", key, got, err)
}
return defaultValue
}