all repos — searchix @ fc7542e01f1d6f9e1c11bacf0060c0165ba54986

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

build: re-enable asset reloading in dev
Alan Pearce alan@alanpearce.eu
Fri, 31 May 2024 03:10:46 +0200
commit

fc7542e01f1d6f9e1c11bacf0060c0165ba54986

parent

b53769462bf830f860b7d741a3d0801afdbc9aa2

2 files changed, 20 insertions(+), 5 deletions(-)

jump to
M frontend/assets.gofrontend/assets.go
@@ -10,7 +10,7 @@ 	"github.com/pkg/errors"
 )
 
-var Assets = AssetCollection{
+var Assets = &AssetCollection{
 	Scripts:     make(map[string]Asset),
 	Stylesheets: make(map[string]Asset),
 }
@@ -83,12 +83,21 @@ 	return nil
 }
 
-func init() {
-	err := hashScripts()
+func Rehash() (err error) {
+	err = hashScripts()
 	if err != nil {
-		panic(err)
+		return err
 	}
 	err = hashStyles()
+	if err != nil {
+		return err
+	}
+
+	return nil
+}
+
+func init() {
+	err := Rehash()
 	if err != nil {
 		panic(err)
 	}
M internal/server/mux.gointernal/server/mux.go
@@ -43,7 +43,7 @@ SourceResult  *bleve.SearchResult 	ExtraHeadHTML template.HTML
 	Code          int
 	Message       string
-	Assets        frontend.AssetCollection
+	Assets        *frontend.AssetCollection
 }
 
 type ResultData struct {
@@ -282,6 +282,12 @@ return nil, errors.WithMessage(err, "could not add directory to file watcher") 		}
 		go fw.Start(func(filename string) {
 			slog.Debug(fmt.Sprintf("got filename %s", filename))
+			if match, _ := path.Match("frontend/static/*", filename); match {
+				err := frontend.Rehash()
+				if err != nil {
+					slog.Error("failed to re-hash frontend assets", "error", err)
+				}
+			}
 			if path.Ext(filename) == ".gotmpl" {
 				templates, err = loadTemplates()
 				if err != nil {