sk-matrix-project/backend/golang/matrix-middle-service/cmd/service/main.go

43 lines
940 B
Go
Raw Normal View History

package service
import (
"github.com/fsnotify/fsnotify"
_ "github.com/go-sql-driver/mysql"
"github.com/spf13/viper"
_ "matrix-middle-service/docs"
"matrix-middle-service/internel/app"
"matrix-middle-service/pkg/config/toml"
"matrix-middle-service/pkg/logger"
"os"
"os/signal"
)
func Main() {
viper.SetConfigName("config")
viper.SetConfigType("toml")
viper.AddConfigPath(".")
viper.AddConfigPath("./conf")
if err := viper.ReadInConfig(); err != nil {
if _, ok := err.(viper.ConfigFileNotFoundError); ok {
_ = toml.GenerateConfig()
logger.Log().Fatalf("未找到配置文件, 已生成示例配置文件于运行路径下")
} else {
logger.Log().Fatalf("配置解析失败 %s", err)
}
}
viper.WatchConfig()
viper.OnConfigChange(func(in fsnotify.Event) {
logger.Log().Info(in.Name)
app.Run()
})
app.Run()
quit := make(chan os.Signal, 1)
signal.Notify(quit, os.Interrupt)
<-quit
app.Shutdown()
}