about summary refs log tree commit diff stats
path: root/internal/server
diff options
context:
space:
mode:
authorAlan Pearce2025-03-12 22:39:51 +0100
committerAlan Pearce2025-03-12 22:39:51 +0100
commit9015baf955c94a806c01b3dcd5648c8e68ad2685 (patch)
tree5f59386c2ab31b6e45b85576e45a1fc8ae448ae0 /internal/server
parent7bb77ff5729cc9434afee895a470fd3b4c12e6d1 (diff)
downloadsearchix-9015baf955c94a806c01b3dcd5648c8e68ad2685.tar.lz
searchix-9015baf955c94a806c01b3dcd5648c8e68ad2685.tar.zst
searchix-9015baf955c94a806c01b3dcd5648c8e68ad2685.zip
refactor: ensure errors have stack traces HEAD main
Diffstat (limited to 'internal/server')
-rw-r--r--internal/server/dev.go6
-rw-r--r--internal/server/logging.go2
-rw-r--r--internal/server/mux.go26
-rw-r--r--internal/server/server.go6
4 files changed, 21 insertions, 19 deletions
diff --git a/internal/server/dev.go b/internal/server/dev.go
index f5fd4fd..89ac069 100644
--- a/internal/server/dev.go
+++ b/internal/server/dev.go
@@ -8,7 +8,7 @@ import (
 	"time"
 
 	"github.com/fsnotify/fsnotify"
-	"github.com/pkg/errors"
+	"gitlab.com/tozd/go/errors"
 	"go.alanpearce.eu/x/log"
 )
 
@@ -17,7 +17,7 @@ type FileWatcher struct {
 	log     *log.Logger
 }
 
-func NewFileWatcher(log *log.Logger) (*FileWatcher, error) {
+func NewFileWatcher(log *log.Logger) (*FileWatcher, errors.E) {
 	watcher, err := fsnotify.NewWatcher()
 	if err != nil {
 		return nil, errors.WithMessage(err, "could not create watcher")
@@ -29,7 +29,7 @@ func NewFileWatcher(log *log.Logger) (*FileWatcher, error) {
 	}, nil
 }
 
-func (i FileWatcher) AddRecursive(from string) error {
+func (i FileWatcher) AddRecursive(from string) errors.E {
 	i.log.Debug(fmt.Sprintf("watching files under %s", from))
 	err := filepath.WalkDir(from, func(path string, entry fs.DirEntry, err error) error {
 		if err != nil {
diff --git a/internal/server/logging.go b/internal/server/logging.go
index 5930b9d..e11b16f 100644
--- a/internal/server/logging.go
+++ b/internal/server/logging.go
@@ -3,7 +3,7 @@ package server
 import (
 	"net/http"
 
-	"github.com/pkg/errors"
+	"gitlab.com/tozd/go/errors"
 	"go.alanpearce.eu/x/log"
 )
 
diff --git a/internal/server/mux.go b/internal/server/mux.go
index 37435d4..1507860 100644
--- a/internal/server/mux.go
+++ b/internal/server/mux.go
@@ -25,7 +25,7 @@ import (
 	"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 @@ func NewMux(
 	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 @@ func NewMux(
 
 				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 @@ func NewMux(
 				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)
 			}
 		}
 	}
diff --git a/internal/server/server.go b/internal/server/server.go
index aacef30..17d3512 100644
--- a/internal/server/server.go
+++ b/internal/server/server.go
@@ -11,7 +11,7 @@ import (
 	"go.alanpearce.eu/searchix/internal/index"
 	"go.alanpearce.eu/x/log"
 
-	"github.com/pkg/errors"
+	"gitlab.com/tozd/go/errors"
 	"golang.org/x/net/http2"
 	"golang.org/x/net/http2/h2c"
 )
@@ -28,7 +28,7 @@ func New(
 	index *index.ReadIndex,
 	log *log.Logger,
 	liveReload bool,
-) (*Server, error) {
+) (*Server, errors.E) {
 	mux, err := NewMux(conf, index, log, liveReload)
 	if err != nil {
 		return nil, err
@@ -49,7 +49,7 @@ func New(
 	}, nil
 }
 
-func (s *Server) Start() error {
+func (s *Server) Start() errors.E {
 	listenAddress := net.JoinHostPort(s.cfg.Web.ListenAddress, strconv.Itoa(s.cfg.Web.Port))
 	l, err := net.Listen("tcp", listenAddress)
 	if err != nil {