2026-04-25 01:18:30 +08:00

48 lines
870 B
Go

package main
import (
"context"
"flag"
"log"
"os/signal"
"syscall"
"hyapp/services/gateway-service/internal/app"
"hyapp/services/gateway-service/internal/config"
)
// main 只负责装配并启动 gateway-service。
func main() {
configPath := flag.String("config", "services/gateway-service/configs/config.yaml", "path to gateway-service config")
flag.Parse()
cfg, err := config.Load(*configPath)
if err != nil {
log.Fatal(err)
}
application, err := app.New(cfg)
if err != nil {
log.Fatal(err)
}
ctx, stop := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM)
defer stop()
errCh := make(chan error, 1)
go func() {
errCh <- application.Run()
}()
select {
case <-ctx.Done():
if err := application.Close(); err != nil {
log.Fatal(err)
}
case err := <-errCh:
if err != nil {
log.Fatal(err)
}
}
}