40 lines
636 B
Go
40 lines
636 B
Go
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
|
|
}
|