package main import ( "log" "net/http" "os" "os/signal" "syscall" "github.com/gin-gonic/gin" "github.com/icedream/sendaround/internal/handshake_server" ) func main() { r := gin.Default() signalAPIGroup := r.Group("/") handshake_server.NewSignalAPI(signalAPIGroup) shutdownChan := make(chan interface{}, 1) s := new(http.Server) s.Addr = ":8080" s.Handler = r go func() { err := s.ListenAndServe() if err != nil { log.Fatal(err) } }() signalChan := make(chan os.Signal, 1) signal.Notify(signalChan, os.Interrupt, syscall.SIGTERM) go func() { <-signalChan shutdownChan <- nil }() <-shutdownChan }