better locks

This commit is contained in:
Chris Lu 2021-01-13 13:20:33 -08:00
parent 819a85f59a
commit e2c7e3fe6d

View file

@ -52,6 +52,10 @@ type ViperProxy struct {
sync.Mutex
}
var (
vp = &ViperProxy{}
)
func (vp *ViperProxy) SetDefault(key string, value interface{}) {
vp.Lock()
defer vp.Unlock()
@ -83,10 +87,15 @@ func (vp *ViperProxy) GetStringSlice(key string) []string {
}
func GetViper() *ViperProxy {
v := &ViperProxy{}
v.Viper = viper.GetViper()
v.AutomaticEnv()
v.SetEnvPrefix("weed")
v.SetEnvKeyReplacer(strings.NewReplacer(".", "_"))
return v
vp.Lock()
defer vp.Unlock()
if vp.Viper == nil {
vp.Viper = viper.GetViper()
vp.AutomaticEnv()
vp.SetEnvPrefix("weed")
vp.SetEnvKeyReplacer(strings.NewReplacer(".", "_"))
}
return vp
}