package service import ( "github.com/fsnotify/fsnotify" "github.com/spf13/viper" "iptables-helper/internel/app" "iptables-helper/pkg/config/toml" "iptables-helper/pkg/constants" "iptables-helper/pkg/logger" _ "iptables-helper/docs" ) 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() }