We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
1.19
1.21
Files
YAML, TOML
No response
func Viper(path ...string) *viper.Viper { var config string if len(path) == 0 { flag.StringVar(&config, "c", "", "choose config file.") flag.Parse() if config == "" { // 判断命令行参数是否为空 if configEnv := os.Getenv(internal.ConfigEnv); configEnv == "" { // 判断 internal.ConfigEnv 常量存储的环境变量是否为空 switch gin.Mode() { case gin.DebugMode: config = internal.ConfigDefaultFile fmt.Printf("您正在使用gin模式的%s环境名称,config的路径为%s\n", gin.EnvGinMode, internal.ConfigDefaultFile) case gin.ReleaseMode: config = internal.ConfigReleaseFile fmt.Printf("您正在使用gin模式的%s环境名称,config的路径为%s\n", gin.EnvGinMode, internal.ConfigReleaseFile) case gin.TestMode: config = internal.ConfigTestFile fmt.Printf("您正在使用gin模式的%s环境名称,config的路径为%s\n", gin.EnvGinMode, internal.ConfigTestFile) } } else { // internal.ConfigEnv 常量存储的环境变量不为空 将值赋值于config config = configEnv fmt.Printf("您正在使用%s环境变量,config的路径为%s\n", internal.ConfigEnv, config) } } else { // 命令行参数不为空 将值赋值于config fmt.Printf("您正在使用命令行的-c参数传递的值,config的路径为%s\n", config) } } else { // 函数传递的可变参数的第一个值赋值于config config = path[0] fmt.Printf("您正在使用func Viper()传递的值,config的路径为%s\n", config) } v := viper.New() v.SetConfigFile(config) v.SetConfigType("yaml") err := v.ReadInConfig() if err != nil { panic(fmt.Errorf("Fatal error config file: %s \n", err)) } v.WatchConfig() v.OnConfigChange(func(e fsnotify.Event) { fmt.Println("config file changed:", e.Name) if err = v.Unmarshal(&global.VUA_CONFIG); err != nil { fmt.Println(err) } }) if err = v.Unmarshal(&global.VUA_CONFIG); err != nil { fmt.Println(err) } return v }
map is
config.yaml share_disk:
step: 1、config.yaml share_disk:
2、The configuration read out is : share_disk:
3、Then modify the configuration file to config.yaml share_disk:
4、The configuration read out is : Still the result of the second step
final result:The configuration has reduced one element but there is no hot update configuration
The text was updated successfully, but these errors were encountered:
No branches or pull requests
Preflight Checklist
Viper Version
1.19
Go Version
1.21
Config Source
Files
Format
YAML, TOML
Repl.it link
No response
Code reproducing the issue
Expected Behavior
map is
config.yaml
share_disk:
addr: 10.74.67.4
Actual Behavior
config.yaml
share_disk:
addr: 10.74.67.4
addr: 10.74.67.5
Steps To Reproduce
step:
1、config.yaml
share_disk:
addr: 10.74.67.4
addr: 10.74.67.5
2、The configuration read out is :
share_disk:
addr: 10.74.67.4
addr: 10.74.67.5
3、Then modify the configuration file to
config.yaml
share_disk:
addr: 10.74.67.4
4、The configuration read out is : Still the result of the second step
final result:The configuration has reduced one element but there is no hot update configuration
Additional Information
No response
The text was updated successfully, but these errors were encountered: