mirror of
https://github.com/keven1024/015.git
synced 2026-05-26 07:08:02 +00:00
54 lines
899 B
Go
54 lines
899 B
Go
package utils
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"github.com/spf13/viper"
|
|
)
|
|
|
|
var v *viper.Viper
|
|
|
|
func init() {
|
|
InitEnv()
|
|
}
|
|
|
|
func InitEnv() {
|
|
if v != nil {
|
|
return
|
|
}
|
|
v = viper.New()
|
|
v.SetConfigName("config.yaml")
|
|
v.SetConfigType("yaml")
|
|
v.SetEnvKeyReplacer(strings.NewReplacer(".", "_"))
|
|
v.AddConfigPath(".")
|
|
v.AddConfigPath("../")
|
|
v.AutomaticEnv()
|
|
v.WatchConfig()
|
|
err := v.ReadInConfig()
|
|
if err != nil {
|
|
panic(err)
|
|
// if _, ok := err.(viper.ConfigFileNotFoundError); !ok {
|
|
// // 只有当错误不是"配置文件未找到"时才 panic
|
|
// panic(err)
|
|
// }
|
|
}
|
|
}
|
|
|
|
func GetEnv(key string) string {
|
|
InitEnv()
|
|
return v.GetString(key)
|
|
}
|
|
|
|
func GetEnvWithDefault(key string, defaultValue string) string {
|
|
value := v.GetString(key)
|
|
if value == "" {
|
|
return defaultValue
|
|
}
|
|
return value
|
|
}
|
|
|
|
func GetEnvMapString(key string) map[string]string {
|
|
InitEnv()
|
|
return v.GetStringMapString(key)
|
|
}
|