all repos — elgit @ 975625f9d4d26eb56f4428f2921b9e1090a49621

fork of legit: web frontend for git, written in go

switch to atreugo

Alan Pearce
commit

975625f9d4d26eb56f4428f2921b9e1090a49621

parent

8b1540f0bd4d2e042b28506abcb3de9189399b1b

1 file changed, 18 insertions(+), 43 deletions(-)

changed files
M routes/template.goroutes/template.go
@@ -5,7 +5,6 @@ "bytes"
"fmt" "io" "log" - "net/http" "path/filepath" "strings"
@@ -13,37 +12,31 @@ "alin.ovh/elgit/git"
"alin.ovh/elgit/templates" "github.com/microcosm-cc/bluemonday" "github.com/russross/blackfriday/v2" + "github.com/savsgio/atreugo/v11" ) -func (d *deps) Write404(w http.ResponseWriter) { - d.WriteError(w, templates.Error{ - Code: http.StatusNotFound, - Message: "nothing like that here.", - }) -} - -func (d *deps) Write500(w http.ResponseWriter) { - d.WriteError(w, templates.Error{ - Code: http.StatusInternalServerError, - Message: "something broke!", - }) -} - -func (d *deps) WriteError(w http.ResponseWriter, err templates.Error) { - w.WriteHeader(err.Code) +func (d *deps) WriteError(rc *atreugo.RequestCtx, err error, i int) error { + rc.SetStatusCode(i) data := templates.PageData{ - Meta: d.c.Meta, - Error: &err, + Meta: d.c.Meta, + Error: &templates.Error{ + Code: i, + Message: err.Error(), + }, } - if err := templates.ErrorPage(data).Render(w); err != nil { + if err := templates.ErrorPage(data).Render(rc); err != nil { log.Printf("error template: %s", err) + + return err } + + return nil } -func (d *deps) listFiles(files []git.NiceTree, data map[string]any, w http.ResponseWriter) { +func (d *deps) listFiles(files []git.NiceTree, data map[string]any, rc *atreugo.RequestCtx) error { pageData := templates.PageData{ Meta: d.c.Meta, - DisplayName: getDisplayName(data["name"].(string)), + DisplayName: data["displayname"].(string), Name: data["name"].(string), Ref: data["ref"].(string), Description: data["desc"].(string),
@@ -64,11 +57,7 @@ if dotdotPath, ok := data["dotdot"]; ok && dotdotPath != nil {
dotdot = dotdotPath.(string) } - if err := templates.TreePage(pageData, files, readme, dotdot).Render(w); err != nil { - log.Println(err) - - return - } + return templates.TreePage(pageData, files, readme, dotdot).Render(rc) } func countLines(r io.Reader) (int, error) {
@@ -98,7 +87,7 @@ }
} } -func (d *deps) showFile(content string, data map[string]any, w http.ResponseWriter) { +func (d *deps) showFile(content string, data map[string]any, rc *atreugo.RequestCtx) error { var renderedContent string if len(content) > 0 { switch filepath.Ext(data["path"].(string)) {
@@ -140,19 +129,5 @@ Description: data["desc"].(string),
Path: data["path"].(string), } - if err := templates.FilePage(pageData).Render(w); err != nil { - log.Println(err) - - return - } -} - -func (d *deps) showRaw(content string, w http.ResponseWriter) { - w.WriteHeader(http.StatusOK) - w.Header().Set("Content-Type", "text/plain") - _, err := w.Write([]byte(content)) - if err != nil { - log.Println(err) - d.Write500(w) - } + return templates.FilePage(pageData).Render(rc) }