From d006d4b20c7bec80d80990dc5e894ec3a81902b3 Mon Sep 17 00:00:00 2001 From: Lukasz Janyst Date: Tue, 3 May 2022 10:33:28 +0200 Subject: [PATCH] cleanup: Use YAML parser to load JSON config Issue #6 --- pkg/config/settings/kvs.go | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/pkg/config/settings/kvs.go b/pkg/config/settings/kvs.go index 49db9c6..160dbc7 100644 --- a/pkg/config/settings/kvs.go +++ b/pkg/config/settings/kvs.go @@ -18,11 +18,11 @@ package settings import ( - "encoding/json" - "os" + "io/ioutil" "strconv" "sync" + "github.com/ghodss/yaml" "github.com/sirupsen/logrus" ) @@ -39,7 +39,7 @@ func newKeyValueStore(path string) *keyValueStore { lock: &sync.RWMutex{}, } if err := p.load(); err != nil { - logrus.WithError(err).Warn("Cannot load preferences file, creating new one") + logrus.WithError(err).Warn("Cannot load preferences file, using defaults") } return p } @@ -54,13 +54,16 @@ func (p *keyValueStore) load() error { p.cache = map[string]string{} - f, err := os.Open(p.path) + data, err := ioutil.ReadFile(p.path) if err != nil { return err } - defer f.Close() //nolint[errcheck] - return json.NewDecoder(f).Decode(&p.cache) + if len(data) == 0 { + return nil + } + + return yaml.Unmarshal(data, &p.cache) } func (p *keyValueStore) setDefault(key, value string) {