package main import ( "context" "log" "log/slog" "net/http" "os" "shlf.space/internal/config" "shlf.space/internal/server" ) func main() { ctx := context.Background() config, err := config.LoadConfig(ctx) if err != nil { slog.Error("failed to load config", "err", err) } state, err := server.Make(ctx, config) defer func() { if err := state.Close(); err != nil { slog.Error("failed to close state", "err", err) } }() if err != nil { log.Fatalf("failed to start server: %v", err) os.Exit(-1) } slog.Info("Starting server", "addr", config.Core.ListenAddr) err = http.ListenAndServe(config.Core.ListenAddr, state.Router()) if err != nil { slog.Error("failed to start server", "err", err) } slog.Info("Shutdown complete.") }