package main import ( "flag" "fmt" "net/http" "codeberg.org/rimgo/rimgo/pages" "codeberg.org/rimgo/rimgo/render" "codeberg.org/rimgo/rimgo/static" "codeberg.org/rimgo/rimgo/utils" "codeberg.org/rimgo/rimgo/views" "github.com/joho/godotenv" ) // a handler that returns error if it can't respond type handler func(w http.ResponseWriter, r *http.Request) error func wrapHandler(h handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { err := h(w, r) if err != nil { http.Error(w, "oop", 500) } }) } func main() { envPath := flag.String("c", ".env", "Path to env file") godotenv.Load(*envPath) utils.LoadConfig() pages.InitializeApiClient() views := views.GetFiles() static := static.GetFiles() render.Initialize(views) app := http.NewServeMux() app.Handle("/static/", http.StripPrefix("/static/", http.FileServerFS(static))) app.Handle("GET /test-render", wrapHandler(func(w http.ResponseWriter, r *http.Request) error { err := render.Render(w, "errors/404", nil) fmt.Println(err) return err })) addr := utils.Config.Addr + ":" + utils.Config.Port fmt.Println("listening on " + addr) err := http.ListenAndServe(addr, app) if err != nil { fmt.Println(err) } }