all repos — homestead @ 5a81e51a0cea5ecc4a0d117157393825ce5445fa

Code for my website

fix livereload handler error

Alan Pearce
commit

5a81e51a0cea5ecc4a0d117157393825ce5445fa

parent

339da20e693b3448a9f71c85555e1831af57c0df

3 files changed, 19 insertions(+), 5 deletions(-)

jump to
M internal/server/server.gointernal/server/server.go
@@ -6,6 +6,7 @@ "fmt"
"net/http" "time" + "github.com/osdevisnot/sorvor/pkg/livereload" "go.alanpearce.eu/x/log" "gitlab.com/tozd/go/errors"
@@ -26,8 +27,9 @@ type Options struct {
ListenAddress string `conf:"default:localhost"` Port int `conf:"default:8080,short:p"` - Domains []string `conf:"-"` - WildcardDomains []string `conf:"-"` + LiveReload *livereload.LiveReload `conf:"-"` + Domains []string `conf:"-"` + WildcardDomains []string `conf:"-"` } type Server struct {
@@ -81,6 +83,11 @@ serverHeaderHandler(
wrapHandlerWithLogging(s.mux, s.log), ), ) + + if s.options.LiveReload != nil { + top.Handle("/_/reload", s.options.LiveReload) + s.options.LiveReload.Start() + } top.HandleFunc("/health", func(w http.ResponseWriter, _ *http.Request) { w.WriteHeader(http.StatusNoContent)
M internal/website/mux.gointernal/website/mux.go
@@ -36,6 +36,8 @@ VCS struct {
Branch string `conf:"default:main"` RemoteURL config.URL `conf:"default:https://git.alanpearce.eu/website"` } + + LiveReload *livereload.LiveReload `conf:"-"` } type Website struct {
@@ -120,9 +122,6 @@ return nil, errors.WithMessage(err, "could not build site")
} if opts.Development { - liveReload := livereload.New() - mux.Handle("/_/reload", liveReload) - liveReload.Start() fw, err := watcher.New(log.Named("watcher")) if err != nil { return nil, errors.WithMessage(err, "could not create file watcher")
@@ -141,6 +140,7 @@ err := rebuild(builderOptions, cfg, log)
if err != nil { log.Error("error rebuilding site", "error", err) } + opts.LiveReload.Reload() }) }
M main.gomain.go
@@ -11,6 +11,7 @@ "go.alanpearce.eu/website/internal/website"
"go.alanpearce.eu/x/log" "github.com/ardanlabs/conf/v3" + "github.com/osdevisnot/sorvor/pkg/livereload" "gitlab.com/tozd/go/errors" )
@@ -30,6 +31,12 @@ }
panic("parsing runtime configuration" + err.Error()) } log := log.Configure(!options.Website.Development) + + if options.Website.Development { + livereload := livereload.New() + options.Server.LiveReload = livereload + options.Website.LiveReload = livereload + } sv, err := server.New(options.Server, log.Named("server")) if err != nil {