package service import ( "github.com/fsnotify/fsnotify" "github.com/spf13/viper" "matrix-common/constants" _ "matrix-middle-service/docs" "matrix-middle-service/internel/app" "matrix-middle-service/pkg/config/toml" "matrix-middle-service/pkg/logger" ) func Main() { viper.SetConfigName(constants.ConfigFileName) viper.SetConfigType(constants.ConfigType) for _, path := range constants.ConfigPaths { viper.AddConfigPath(path) } if err := viper.ReadInConfig(); err != nil { if _, ok := err.(viper.ConfigFileNotFoundError); ok { _ = toml.GenerateConfig() logger.Log().Fatalf("未找到配置文件, 已生成示例配置文件于运行路径下") } else { logger.Log().Fatalf("配置解析失败 %s", err) } } viper.OnConfigChange(func(in fsnotify.Event) { logger.Log().Info(in.Name) app.Run() }) viper.WatchConfig() app.Run() defer app.Shutdown() }