// Code scaffolded by goctl. Safe to edit. // goctl 1.10.1 package main import ( "context" "flag" "fmt" "os" "os/signal" "syscall" "gateway/internal/config" "gateway/internal/handler" "gateway/internal/svc" "github.com/zeromicro/go-zero/core/conf" "github.com/zeromicro/go-zero/rest" ) var configFile = flag.String("f", "etc/gateway.yaml", "the config file") func main() { flag.Parse() var c config.Config conf.MustLoad(*configFile, &c) server := rest.MustNewServer(c.RestConf) defer server.Stop() sc := svc.NewServiceContext(c) handler.RegisterHandlers(server, sc) workerCtx, stopWorkers := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM) defer stopWorkers() sc.StartWorkers(workerCtx) defer sc.StopWorkers() fmt.Printf("Starting server at %s:%d...\n", c.Host, c.Port) server.Start() }