package web import ( "net/http" "path" "github.com/rs/zerolog/log" ) func (web *Web) indexHandler(entryPoint string) func(w http.ResponseWriter, r *http.Request) { fn := func(w http.ResponseWriter, r *http.Request) { p := path.Clean(r.URL.Path) if web.box.Has(p) && !web.box.HasDir(p) { f, err := web.box.Find(p) if err != nil { log.Error().Err(err).Msg("Error finding file") w.WriteHeader(http.StatusNotFound) } w.Write(f) return } if web.box.HasDir(p) && web.box.Has(path.Join(p, "index.html")) { f, err := web.box.Find(path.Join(p, "index.html")) if err != nil { log.Error().Err(err).Msg("Error finding file") w.WriteHeader(http.StatusNotFound) } w.Write(f) return } if f, err := web.box.Find(p); err != nil { w.Write(f) return } w.WriteHeader(http.StatusNotFound) } return fn }