优化部分

This commit is contained in:
Yun
2023-11-10 00:05:27 +08:00
parent b58d50778d
commit 3545414ef2
12 changed files with 166 additions and 647 deletions
+1
View File
@@ -0,0 +1 @@
name: demo
+6 -9
View File
@@ -8,7 +8,6 @@ import (
"fmt"
"log"
"os"
"yunink/app/config"
"github.com/fsnotify/fsnotify"
"github.com/spf13/viper"
@@ -16,7 +15,7 @@ import (
// 使用viper初始化配置
func InitConfig(path string) (*config.Config, error) {
func InitConfig(path string, data interface{}) error {
if len(path) == 0 {
flag.StringVar(&path, "c", "", "choose config file.")
@@ -38,24 +37,22 @@ func InitConfig(path string) (*config.Config, error) {
v.SetConfigFile(path)
err := v.ReadInConfig()
if err != nil {
return nil, err
return err
}
// 监控配置文件的变化
v.WatchConfig()
resp := new(config.Config)
// 监听配置的变化
v.OnConfigChange(func(e fsnotify.Event) {
fmt.Println("config file changed:", e.Name)
if err := v.Unmarshal(&resp); err != nil {
if err := v.Unmarshal(&data); err != nil {
log.Println(err)
}
})
if err := v.Unmarshal(&resp); err != nil {
if err := v.Unmarshal(&data); err != nil {
log.Println(err)
return nil, err
return err
}
return resp, nil
return nil
}
+19
View File
@@ -0,0 +1,19 @@
package viperx
import (
"fmt"
"testing"
)
func TestViper(t *testing.T) {
var data Config
err := InitConfig("./config.yml", &data)
if err != nil {
panic(err)
}
fmt.Println(data)
}
type Config struct {
Name string `mapstructure:"name" json:"name" yaml:"name"`
}