all repos — searchix @ 9015baf955c94a806c01b3dcd5648c8e68ad2685

Search engine for NixOS, nix-darwin, home-manager and NUR users

refactor: ensure errors have stack traces

Alan Pearce
commit

9015baf955c94a806c01b3dcd5648c8e68ad2685

parent

7bb77ff5729cc9434afee895a470fd3b4c12e6d1

1 file changed, 14 insertions(+), 12 deletions(-)

changed files
M internal/server/mux.gointernal/server/mux.go
@@ -25,7 +25,7 @@ "go.alanpearce.eu/searchix/internal/sentryhttp"
"go.alanpearce.eu/x/log" "github.com/osdevisnot/sorvor/pkg/livereload" - "github.com/pkg/errors" + "gitlab.com/tozd/go/errors" ) type HTTPError struct {
@@ -65,7 +65,7 @@ cfg *config.Config,
index *search.ReadIndex, log *log.Logger, liveReload bool, -) (*http.ServeMux, error) { +) (*http.ServeMux, errors.E) { if cfg == nil { return nil, errors.New("cfg is nil") }
@@ -171,15 +171,16 @@ }
w.Header().Add("Cache-Control", "max-age=300") w.Header().Add("Vary", "Fetch") + var baseErr error if r.Header.Get("Fetch") == "true" { w.Header().Add("Content-Type", "text/html; charset=utf-8") - err = components.Results(tdata).Render(r.Context(), w) + baseErr = components.Results(tdata).Render(r.Context(), w) } else { - err = components.ResultsPage(tdata).Render(r.Context(), w) + baseErr = components.ResultsPage(tdata).Render(r.Context(), w) } - if err != nil { - log.Error("template error", "template", importerType, "error", err) - errorHandler(w, r, err.Error(), http.StatusInternalServerError) + if baseErr != nil { + log.Error("template error", "template", importerType, "error", baseErr) + errorHandler(w, r, baseErr.Error(), http.StatusInternalServerError) } } else { w.Header().Add("Cache-Control", "max-age=14400")
@@ -244,15 +245,16 @@ Source: source,
Sources: sources, Assets: frontend.Assets, } + var baseErr error if r.Header.Get("Fetch") == "true" { w.Header().Add("Content-Type", "text/html; charset=utf-8") - err = components.Detail(*doc).Render(r.Context(), w) + baseErr = components.Detail(*doc).Render(r.Context(), w) } else { - err = components.DetailPage(tdata, *doc).Render(r.Context(), w) + baseErr = components.DetailPage(tdata, *doc).Render(r.Context(), w) } - if err != nil { - log.Error("template error", "template", importerSingular, "error", err) - errorHandler(w, r, err.Error(), http.StatusInternalServerError) + if baseErr != nil { + log.Error("template error", "template", importerSingular, "error", baseErr) + errorHandler(w, r, baseErr.Error(), http.StatusInternalServerError) } } }