Files
rimgo/main.go
2026-01-19 17:26:45 +01:00

54 lines
1.2 KiB
Go

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)
}
}