2023-10-26 10:07:08 +08:00
|
|
|
package initialization
|
2023-10-11 09:21:07 +08:00
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/fsnotify/fsnotify"
|
|
|
|
"github.com/spf13/viper"
|
2023-10-26 10:07:08 +08:00
|
|
|
"go-wechat/client"
|
|
|
|
"go-wechat/config"
|
2023-10-11 09:21:07 +08:00
|
|
|
"log"
|
|
|
|
)
|
|
|
|
|
|
|
|
// 配置管理工具
|
|
|
|
var vp *viper.Viper
|
|
|
|
|
|
|
|
// InitConfig
|
|
|
|
// @description: 初始化配置
|
|
|
|
func InitConfig() {
|
|
|
|
vp = viper.New()
|
|
|
|
vp.AddConfigPath(".") // 设置配置文件路径
|
|
|
|
vp.SetConfigName("config") // 设置配置文件名
|
|
|
|
vp.SetConfigType("yaml") // 设置配置文件类型
|
|
|
|
// 读取配置文件
|
|
|
|
if err := vp.ReadInConfig(); err != nil {
|
|
|
|
log.Panicf("读取配置文件失败: %v", err)
|
|
|
|
}
|
|
|
|
// 绑定配置文件
|
2023-10-26 10:07:08 +08:00
|
|
|
if err := vp.Unmarshal(&config.Conf); err != nil {
|
2023-10-11 09:21:07 +08:00
|
|
|
log.Panicf("配置文件解析失败: %v", err)
|
|
|
|
}
|
2023-10-26 10:07:08 +08:00
|
|
|
log.Printf("配置文件解析完成: %+v", config.Conf)
|
|
|
|
if !config.Conf.Wechat.Check() {
|
|
|
|
log.Panicf("微信HOOK配置缺失")
|
|
|
|
}
|
2023-10-11 09:21:07 +08:00
|
|
|
// 初始化数据库连接
|
2023-10-26 10:07:08 +08:00
|
|
|
client.InitMySQLClient()
|
2023-10-11 09:21:07 +08:00
|
|
|
//redis.Init()
|
|
|
|
|
|
|
|
// 下面的代码是配置变动之后自动刷新的
|
|
|
|
vp.WatchConfig()
|
|
|
|
vp.OnConfigChange(func(e fsnotify.Event) {
|
|
|
|
// 绑定配置文件
|
2023-10-26 10:07:08 +08:00
|
|
|
if err := vp.Unmarshal(&config.Conf); err != nil {
|
2023-10-11 09:21:07 +08:00
|
|
|
log.Printf("配置文件更新失败: %v", err)
|
|
|
|
} else {
|
2023-10-26 10:07:08 +08:00
|
|
|
if !config.Conf.Wechat.Check() {
|
|
|
|
log.Panicf("微信HOOK配置缺失")
|
|
|
|
}
|
2023-10-11 09:21:07 +08:00
|
|
|
// 初始化数据库连接
|
2023-10-26 10:07:08 +08:00
|
|
|
client.InitMySQLClient()
|
2023-10-11 09:21:07 +08:00
|
|
|
//redis.Init()
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|