package main

import (
	"context"
	"fmt"
	"os"
	"os/signal"
	"syscall"

	"github.com/labstack/echo/v4"

	"github.com/pingcap/test-infra/services/rms/tc-validator/handler"
)

func waitShutdown(e *echo.Echo) error {
	shutdown := make(chan os.Signal, 1)
	signal.Notify(shutdown, os.Interrupt, syscall.SIGINT, syscall.SIGTERM)
	<-shutdown
	return e.Shutdown(context.Background())
}

func main() {
	r := handler.NewHTTPServer(handler.NewHandler())
	go func() {
		err := r.Start(":8080")
		fmt.Printf("shutting down the server, err=%v", err)
	}()

	if err := waitShutdown(r); err != nil {
		r.Logger.Fatal(err)
	}
}
