Skip to content

Instantly share code, notes, and snippets.

@Daniel1984
Created April 22, 2020 17:55
Show Gist options
  • Save Daniel1984/aa7d616edc32dc64d31debc5c34f8a62 to your computer and use it in GitHub Desktop.
Save Daniel1984/aa7d616edc32dc64d31debc5c34f8a62 to your computer and use it in GitHub Desktop.
// cmd/api/main.go
package main
import (
"github.com/boilerplate/cmd/api/router"
"github.com/boilerplate/pkg/application"
"github.com/boilerplate/pkg/exithandler"
"github.com/boilerplate/pkg/logger"
"github.com/boilerplate/pkg/server"
"github.com/joho/godotenv"
)
func main() {
if err := godotenv.Load(); err != nil {
logger.Info.Println("failed to load env vars")
}
app, err := application.Get()
if err != nil {
logger.Error.Fatal(err.Error())
}
srv := server.
Get().
WithAddr(app.Cfg.GetAPIPort()).
WithRouter(router.Get(app)).
WithErrLogger(logger.Error)
go func() {
logger.Info.Printf("starting server at %s", app.Cfg.GetAPIPort())
if err := srv.Start(); err != nil {
logger.Error.Fatal(err.Error())
}
}()
exithandler.Init(func() {
if err := srv.Close(); err != nil {
logger.Error.Println(err.Error())
}
if err := app.DB.Close(); err != nil {
logger.Error.Println(err.Error())
}
})
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment