mirror of
https://codeberg.org/video-prize-ranch/rimgo.git
synced 2026-01-27 17:11:13 +00:00
54 lines
1.2 KiB
Go
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.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)
|
|
}
|
|
}
|