filebrowser/routes/browse/get.go
2016-06-07 16:08:52 +01:00

45 lines
1020 B
Go

package browse
import (
"net/http"
"text/template"
"github.com/hacdias/caddy-hugo/tools/templates"
"github.com/hacdias/caddy-hugo/tools/variables"
"github.com/mholt/caddy/caddyhttp/browse"
"github.com/mholt/caddy/caddyhttp/httpserver"
)
// GET handles the GET method on browse page and shows the files listing Using
// the Browse Caddy middleware.
func GET(w http.ResponseWriter, r *http.Request) (int, error) {
functions := template.FuncMap{
"CanBeEdited": templates.CanBeEdited,
"Defined": variables.Defined,
}
tpl, err := templates.Get(r, functions, "browse")
if err != nil {
return http.StatusInternalServerError, err
}
// Using Caddy's Browse middleware
b := browse.Browse{
Next: httpserver.HandlerFunc(func(w http.ResponseWriter, r *http.Request) (int, error) {
return 404, nil
}),
Configs: []browse.Config{
{
PathScope: "/",
Root: http.Dir(conf.Path),
Variables: conf,
Template: tpl,
},
},
IgnoreIndexes: true,
}
return b.ServeHTTP(w, r)
}