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 }