// 配置文件操作接口
// 秒寻科技
// 2024-01-09
// 周涛

package util

import (
	"fmt"

	"github.com/fsnotify/fsnotify"
	"github.com/spf13/viper"
)

// viper实例
var viperConfig *viper.Viper

// 初始化配置文件
func ViperConfigInit(filePath string, fileName string) {
	viperConfig = viper.New()           //新建一个对象
	viperConfig.AddConfigPath(filePath) //文件路径,相对路径
	viperConfig.SetConfigName(fileName) //文件名
	viperConfig.SetConfigType("toml")   //文件扩展名

	// 将配置文件读取到viper中
	if err := viperConfig.ReadInConfig(); err != nil {
		panic(err)
	}

	//监听配置文件的变化
	viperConfig.WatchConfig()
	viperConfig.OnConfigChange(func(e fsnotify.Event) {
		fmt.Println("Config file changed:", e.Name)
	})
}

// 获得viper对象
func GetViper() *viper.Viper {
	return viperConfig
}