Parse env vars

This commit is contained in:
Dan Jones 2024-02-10 11:06:00 -06:00
commit 85f666cbc2
5 changed files with 57 additions and 17 deletions

View file

@ -9,6 +9,8 @@ import (
"codeberg.org/danjones000/my-log/tools"
"github.com/BurntSushi/toml"
"github.com/caarlos0/env/v10"
mapst "github.com/mitchellh/mapstructure"
)
var ConfigPath string
@ -28,7 +30,8 @@ func Load() (Config, error) {
return c, err
}
}
// @todo get environ
env.Parse(&c)
// @todo how to handle env on options so cli args aren't overwrittem?
l := ""
for k, v := range Overrides {
@ -51,3 +54,19 @@ func Load() (Config, error) {
_, err = toml.Decode(l, &c)
return c, err
}
func (oo Outputs) Stdout() (s Stdout, enabled bool) {
o, ok := oo["stdout"]
if !ok {
return s, false
}
st := struct {
Enabled bool `env:"LOG_STDOUT_ENABLED"`
}{o.Enabled}
env.Parse(&st)
enabled = st.Enabled
mapst.Decode(o.Config, &s)
env.Parse(&s)
return
}