Further fixes for config file watcher

This commit is contained in:
Svilen Markov 2024-11-30 12:23:57 +00:00
parent f68e5ae9ef
commit 98b4b7330e

View File

@ -5,6 +5,7 @@ import (
"fmt" "fmt"
"html/template" "html/template"
"log" "log"
"maps"
"os" "os"
"path/filepath" "path/filepath"
"regexp" "regexp"
@ -202,9 +203,13 @@ func configFilesWatcher(
mu.Lock() mu.Lock()
defer mu.Unlock() defer mu.Unlock()
if !bytes.Equal(lastContents, currentContents) { if !maps.Equal(currentIncludes, lastIncludes) {
updateWatchedIncludes(lastIncludes, currentIncludes) updateWatchedIncludes(lastIncludes, currentIncludes)
lastContents, lastIncludes = currentContents, currentIncludes lastIncludes = currentIncludes
}
if !bytes.Equal(lastContents, currentContents) {
lastContents = currentContents
onChange(currentContents) onChange(currentContents)
} }
} }
@ -230,9 +235,12 @@ func configFilesWatcher(
if event.Has(fsnotify.Write) { if event.Has(fsnotify.Write) {
debouncedCallback() debouncedCallback()
} else if event.Has(fsnotify.Remove) { } else if event.Has(fsnotify.Remove) {
mu.Lock() func() {
delete(lastIncludes, event.Name) mu.Lock()
mu.Unlock() defer mu.Unlock()
fileAbsPath, _ := filepath.Abs(event.Name)
delete(lastIncludes, fileAbsPath)
}()
debouncedCallback() debouncedCallback()
} }