mirror of
https://github.com/taigrr/jety.git
synced 2026-04-01 19:08:58 -07:00
load env into cm
This commit is contained in:
30
env.go
30
env.go
@@ -3,6 +3,8 @@ package config
|
|||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -17,23 +19,35 @@ const (
|
|||||||
type ConfigManager struct {
|
type ConfigManager struct {
|
||||||
configFileUsed string
|
configFileUsed string
|
||||||
configType ConfigType
|
configType ConfigType
|
||||||
autoEnvEnabled bool
|
|
||||||
envPrefix string
|
envPrefix string
|
||||||
mapConfig map[string]any
|
mapConfig map[string]any
|
||||||
defaultConfig map[string]any
|
defaultConfig map[string]any
|
||||||
|
envConfig map[string]string
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
ErrConfigFileNotFound = errors.New("config File Not Found")
|
ErrConfigFileNotFound = errors.New("config File Not Found")
|
||||||
defaultConfigManager = NewConfigManager()
|
defaultConfigManager = NewConfigManager(true)
|
||||||
)
|
)
|
||||||
|
|
||||||
func NewConfigManager() *ConfigManager {
|
func NewConfigManager(automaticEnv bool) *ConfigManager {
|
||||||
return &ConfigManager{}
|
cm := ConfigManager{}
|
||||||
}
|
cm.envConfig = make(map[string]string)
|
||||||
|
cm.mapConfig = make(map[string]any)
|
||||||
func AutoMaticEnv(enabled bool) {
|
cm.defaultConfig = make(map[string]any)
|
||||||
defaultConfigManager.autoEnvEnabled = enabled
|
cm.envPrefix = ""
|
||||||
|
envSet := os.Environ()
|
||||||
|
for _, env := range envSet {
|
||||||
|
kv := strings.Split(env, "=")
|
||||||
|
cm.envConfig[kv[0]] = kv[1]
|
||||||
|
lowerKey := strings.ToLower(kv[0])
|
||||||
|
if cm.envConfig[lowerKey] == "" {
|
||||||
|
// if the key is not set, set it as the lower case of the key
|
||||||
|
// but don't clobber any existing, more specific (already lowercase) value
|
||||||
|
cm.envConfig[lowerKey] = kv[1]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return &cm
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *ConfigManager) ConfigFileUsed() string {
|
func (c *ConfigManager) ConfigFileUsed() string {
|
||||||
|
|||||||
Reference in New Issue
Block a user