github.com/inhzus/go-berater@v0.0.0-20190602170559-fb80cb14726b/main.go (about)

     1  package main
     2  
     3  import (
     4  	"fmt"
     5  	"github.com/gin-gonic/gin"
     6  	"github.com/inhzus/go-berater/config"
     7  	"github.com/inhzus/go-berater/models"
     8  	"github.com/inhzus/go-berater/routes"
     9  	"os"
    10  	"os/signal"
    11  )
    12  
    13  func setup() {
    14  	config.Setup()
    15  	models.Setup()
    16  }
    17  
    18  func teardown() {
    19  	models.Teardown()
    20  }
    21  
    22  func main() {
    23  	setup()
    24  	engine := gin.Default()
    25  	routes.ApplyRoutes(engine)
    26  	signalChannel := make(chan os.Signal, 1)
    27  	signal.Notify(signalChannel, os.Interrupt)
    28  	go func() {
    29  		<-signalChannel
    30  		fmt.Println("\nReceived an interrupt, teardown")
    31  		teardown()
    32  		os.Exit(0)
    33  	}()
    34  	_ = engine.Run(":5000")
    35  }