// Code generated by hertz generator. package main import ( "context" "flag" "fmt" "github.com/cloudwego/hertz/pkg/app/server" "gopkg.in/yaml.v3" "log" "os" "weather_and_earthquake/internal/biz" "weather_and_earthquake/internal/config" "weather_and_earthquake/internal/data" "weather_and_earthquake/internal/middleware" logs "github.com/zxysilent/logs" ) var ( _configPath string _appsPath string _server *server.Hertz ) func init() { flag.StringVar(&_configPath, "config", "configs/config.yaml", "config path, eg: -conf=config.yaml") flag.StringVar(&_appsPath, "apps", "configs/apps.yaml", "apps path, eg: -apps=apps.yaml") } func initialize() { configFile, err := os.Open(_configPath) if err != nil { log.Fatalln(err.Error()) } defer configFile.Close() conf := &config.Config{} decoder := yaml.NewDecoder(configFile) err = decoder.Decode(conf) if err != nil { log.Fatalln(err.Error()) } appsFile, err := os.Open(_appsPath) if err != nil { log.Fatalln(err.Error()) } defer appsFile.Close() apps := &config.Apps{} decoder = yaml.NewDecoder(appsFile) err = decoder.Decode(apps) if err != nil { log.Fatalln(err.Error()) } if len(apps.AppSecrets) == 0 { log.Fatalln("no app secrets") } biz.AccuWeather = conf.AccuWeather middleware.Apps = apps err = data.InitWeatherCache(context.Background(), conf.Data.Redis) if err != nil { log.Fatalln(err.Error()) } switch conf.Server.LogLevel { case 1: logs.SetLevel(logs.LINFO) case 2: logs.SetLevel(logs.LWARN) case 3: logs.SetLevel(logs.LERROR) default: logs.SetLevel(logs.LDEBUG) } logs.SetFile("./logs/logs.log") logs.Warn("Logs warning") logs.Error("Logs error") logs.Info("Logs info") logs.Debug("Logs debug") hostPort := fmt.Sprintf("%s:%d", conf.Server.Addr, conf.Server.Port) _server = server.Default(server.WithHostPorts(hostPort)) register(_server) } func main() { initialize() _server.Spin() }