diff --git a/config/conf_loader.go b/config/conf_loader.go index 8397953..5494e3d 100644 --- a/config/conf_loader.go +++ b/config/conf_loader.go @@ -31,7 +31,7 @@ func GetConfLoader() *onion.Onion { localConfigFile := "./" + AppName[3:] + ".json" var configFile string var o *onion.Onion - l3 := onion.NewEnvLayerPrefix("_", EnvPrefix) + l3 := GetEnvVarLayer(EnvPrefix) l2, err := onion.NewFileLayer(localConfigFile, nil) if err == nil { logger.Info().Msg("Local config file found " + localConfigFile + ", overriding default file") @@ -54,3 +54,17 @@ func GetConfLoader() *onion.Onion { } return o } + +func GetEnvVarLayer(prefix string) onion.Layer { + envVars := make(map[string]interface{}) + + for _, e := range os.Environ() { + pair := strings.SplitN(e, "=", 2) + key := pair[0] + if strings.HasPrefix(key, prefix) { + envVars[strings.TrimPrefix(key, prefix)] = pair[1] + } + } + + return onion.NewMapLayer(envVars) +}