package gemserver
import (
"fmt"
"gemif/pkg/gamemanager"
"gemif/pkg/scenerenderer"
"os"
"github.com/markbates/pkger"
"github.com/pitr/gig"
)
// StartRouter starts the gig server for handling Gemini requests.
func StartRouter(gm *gamemanager.GameManager, gc ServerConfig) {
//https://github.com/golangci/golangci-lint/issues/741
//nolint:staticcheck
pkger.Include("/static")
tmpl, err := compileTemplates()
if err != nil {
fmt.Printf("Couldn't compile templates: %s", err)
os.Exit(1)
}
sceneRenderer := scenerenderer.New()
g := gig.Default()
g.HideBanner = true
g.Renderer = &Template{
templates: tmpl,
}
g.Handle("/", handleHome(gm))
g.Handle("/game/:statetoken", handleGame(gm, sceneRenderer))
g.Handle("/docs*", handleStatic)
panic(g.Run(fmt.Sprintf(":%d", gc.Port), gc.CertFile, gc.KeyFile))
}