support env variables to overwrite toml file
This commit is contained in:
@@ -1,8 +1,11 @@
|
||||
package util
|
||||
|
||||
import (
|
||||
"github.com/chrislusf/seaweedfs/weed/glog"
|
||||
"strings"
|
||||
|
||||
"github.com/spf13/viper"
|
||||
|
||||
"github.com/chrislusf/seaweedfs/weed/glog"
|
||||
)
|
||||
|
||||
type Configuration interface {
|
||||
@@ -37,3 +40,11 @@ func LoadConfiguration(configFileName string, required bool) (loaded bool) {
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
func GetViper() *viper.Viper {
|
||||
v := viper.GetViper()
|
||||
v.AutomaticEnv()
|
||||
v.SetEnvPrefix("weed")
|
||||
v.SetEnvKeyReplacer(strings.NewReplacer(".", "_"))
|
||||
return v
|
||||
}
|
||||
|
||||
24
weed/util/config_test.go
Normal file
24
weed/util/config_test.go
Normal file
@@ -0,0 +1,24 @@
|
||||
package util
|
||||
|
||||
import (
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestAllKeysWithEnv(t *testing.T) {
|
||||
|
||||
v := GetViper()
|
||||
v.BindEnv("id")
|
||||
v.BindEnv("foo", "foo")
|
||||
|
||||
// bind and define environment variables (including a nested one)
|
||||
os.Setenv("WEED_ID", "13")
|
||||
os.Setenv("WEED_FOO_BAR", "baz")
|
||||
|
||||
sub := v.Sub("foo")
|
||||
|
||||
assert.Equal(t, "13", v.GetString("id"))
|
||||
assert.Equal(t, "baz", sub.GetString("bar"))
|
||||
}
|
||||
Reference in New Issue
Block a user