diff options
| author | Xe Iaso <me@xeiaso.net> | 2023-11-03 12:53:29 -0400 |
|---|---|---|
| committer | Xe Iaso <me@xeiaso.net> | 2023-11-03 12:54:28 -0400 |
| commit | e82f05d9ed6c66479ddd29d399618d9fc72882e4 (patch) | |
| tree | e39e2f0a1db6048a41043719765aa50b84bc4482 /cmd | |
| parent | edbc8f1e5ca218092bb60b6f5febee20f8148ec9 (diff) | |
| download | xesite-e82f05d9ed6c66479ddd29d399618d9fc72882e4.tar.xz xesite-e82f05d9ed6c66479ddd29d399618d9fc72882e4.zip | |
cmd/xesite: debounce rebuild events
Signed-off-by: Xe Iaso <me@xeiaso.net>
Diffstat (limited to 'cmd')
| -rw-r--r-- | cmd/xesite/devel.go | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/cmd/xesite/devel.go b/cmd/xesite/devel.go index 944af30..23f35ff 100644 --- a/cmd/xesite/devel.go +++ b/cmd/xesite/devel.go @@ -7,7 +7,9 @@ import ( "os" "path/filepath" "strings" + "time" + "github.com/bep/debounce" "gopkg.in/fsnotify.v1" "xeiaso.net/v4/internal/lume" ) @@ -55,6 +57,15 @@ func rebuildOnChange(fs *lume.FS) { } defer watcher.Close() + reload := func() { + slog.Info("reloading") + if err := fs.Update(context.Background()); err != nil { + slog.Error("reload failed", "err", err) + } + } + + d := debounce.New(100 * time.Millisecond) + if err = watcher.Add("./lume"); err != nil { log.Fatal(err) } @@ -84,10 +95,7 @@ func rebuildOnChange(fs *lume.FS) { slog.Debug("got event", "fname", event.Name, "op", event.Op.String()) - slog.Info("reloading") - if err := fs.Update(context.Background()); err != nil { - slog.Error("reload failed", "err", err) - } + d(reload) case err := <-watcher.Errors: log.Fatal(err) } |
