From ca37aead920cd9bc594852872fb610301a429aed Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Fri, 2 Jun 2023 10:13:27 +0200 Subject: [PATCH] rename/reorganize access to overridable settings --- config/config.go | 4 ++-- examples/demo/etc/etc.go | 7 ++++--- examples/demo/etc/settings.go | 1 - tests/etc/etc.go | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/config/config.go b/config/config.go index 495ac7a..b9530aa 100644 --- a/config/config.go +++ b/config/config.go @@ -61,12 +61,12 @@ func Setup(cfg Config) Config { type Settings map[string]string -func (s Settings) Get(key, def string) string { +func (s Settings) Use(value, key string) string { if v, ok := os.LookupEnv("SCOPES_" + strings.ToUpper(key)); ok { return v } if v, ok := s[key]; ok { return v } - return def + return value } diff --git a/examples/demo/etc/etc.go b/examples/demo/etc/etc.go index b30f99f..7d162e4 100644 --- a/examples/demo/etc/etc.go +++ b/examples/demo/etc/etc.go @@ -6,18 +6,19 @@ import ( ) func Config() config.Config { - ovr := Overrides().Get + ovr := Overrides().Use b := config.MakeBase cfg := scopes.Cfg{ Base: b("dummy", scopes.Start), - Home: ovr(HOME, "."), + Home: ovr(".", HOME), AppType: "standard", } cfg.Add(config.Cfg{b("config", config.Start), "etc"}) return &cfg } +// collect here the names of fields that may be overridden via +// explicit Override() or SCOPES_* environment settings. const ( - NAME = "name" HOME = "home" ) diff --git a/examples/demo/etc/settings.go b/examples/demo/etc/settings.go index 2c1f5b1..790196e 100644 --- a/examples/demo/etc/settings.go +++ b/examples/demo/etc/settings.go @@ -4,7 +4,6 @@ import "git.sr.ht/~cco/go-scopes/config" func Overrides() config.Settings { return config.Settings{ - NAME: "overridden", HOME: "/home/scopes/app", } } diff --git a/tests/etc/etc.go b/tests/etc/etc.go index 4c8d2aa..ab14a72 100644 --- a/tests/etc/etc.go +++ b/tests/etc/etc.go @@ -6,11 +6,11 @@ import ( ) func Config() config.Config { - ovr := Overrides().Get + ovr := Overrides().Use b := config.MakeBase cfg := scopes.Cfg{ Base: b("dummy", scopes.Start), - Home: ovr(HOME, "."), + Home: ovr(".", HOME), AppType: "standard", } cfg.Add(config.Cfg{b("config", config.Start), "etc"})