Files
mantrae/server/cmd/main.go
2025-07-31 00:37:57 +02:00

38 lines
674 B
Go

package main
import (
"context"
"log/slog"
"os"
"os/signal"
"syscall"
"github.com/mizuchilabs/mantrae/server/internal/api/server"
"github.com/mizuchilabs/mantrae/server/internal/config"
)
func main() {
// Graceful shutdown
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
app, err := config.Setup(ctx)
if err != nil {
slog.Error("Setup failed", "error", err)
return
}
go func() {
sigCh := make(chan os.Signal, 1)
signal.Notify(sigCh, syscall.SIGINT, syscall.SIGTERM)
<-sigCh
cancel()
}()
srv := server.NewServer(app)
if err := srv.Start(ctx); err != nil {
slog.Error("Server error", "error", err)
os.Exit(1)
}
}