refactor: extract server from main.go to it's own package
This commit is contained in:
parent
1413fde9f0
commit
24e99a3b08
2 changed files with 72 additions and 44 deletions
|
|
@ -2,16 +2,15 @@ package main
|
|||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"os/signal"
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
fiberzap "github.com/gofiber/contrib/fiberzap/v2"
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"gitlab.mareshq.com/hq/yggdrasil/internal/server"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
//go:generate go run github.com/deepmap/oapi-codegen/v2/cmd/oapi-codegen --config=../../oapi-codegen.yaml ../../api/v1/openapi.yaml
|
||||
|
||||
var port = 3000
|
||||
|
||||
func main() {
|
||||
|
|
@ -20,45 +19,7 @@ func main() {
|
|||
|
||||
logger := zap.Must(zap.NewDevelopment())
|
||||
defer logger.Sync()
|
||||
sugared := logger.Sugar()
|
||||
|
||||
config := fiber.Config{
|
||||
DisableStartupMessage: true,
|
||||
|
||||
IdleTimeout: 10 * time.Second,
|
||||
ReadTimeout: 10 * time.Second,
|
||||
WriteTimeout: 10 * time.Second,
|
||||
}
|
||||
|
||||
app := fiber.New(config)
|
||||
|
||||
app.Get("/", func(c *fiber.Ctx) error {
|
||||
return c.SendString("Hello, World!")
|
||||
})
|
||||
|
||||
app.Use(fiberzap.New(fiberzap.Config{
|
||||
Logger: logger,
|
||||
}))
|
||||
|
||||
go func() {
|
||||
err := app.Listen(fmt.Sprintf(":%d", port))
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}()
|
||||
|
||||
sugared.Infow("Yggdrasil is now running", "port", port)
|
||||
|
||||
<-shutdownCtx.Done()
|
||||
stop()
|
||||
|
||||
sugared.Infoln("Shutting down gracefully...")
|
||||
err := app.ShutdownWithTimeout(10 * time.Second)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
// Cleanup code here
|
||||
|
||||
sugared.Infoln("Yggdrasil shut down gracefully.")
|
||||
server := server.NewServer(port, logger)
|
||||
server.Run(shutdownCtx)
|
||||
}
|
||||
|
|
|
|||
Reference in a new issue