WEQServer/main.go

73 lines
1.5 KiB
Go

// Code generated by hertz generator.
package main
import (
"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"
)
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
data.DataConf = conf.Data
hostPort := fmt.Sprintf("%s:%d", conf.Server.Addr, conf.Server.Port)
_server = server.Default(server.WithHostPorts(hostPort))
register(_server)
}
func main() {
initialize()
_server.Spin()
}