Skip to content
Snippets Groups Projects
Verified Commit 896b5d75 authored by Volker Schukai's avatar Volker Schukai :alien:
Browse files

fix monitor directories not files

parent 1481483d
No related branches found
No related tags found
No related merge requests found
......@@ -95,7 +95,7 @@ func (s *Settings[C]) importFiles() {
s.fileWatch.Lock()
// new files may have been added
tmpWatchList := make(map[string]string)
tmpWatchList := make(map[string]bool)
defer func() {
s.fileWatch.watchList = tmpWatchList
......@@ -123,7 +123,7 @@ func (s *Settings[C]) importFiles() {
s.importStream(reader{s.files.format, r})
f.Close()
tmpWatchList[fn] = fn
tmpWatchList[fn] = true
}
......@@ -138,7 +138,7 @@ func (s *Settings[C]) importFiles() {
s.importStream(reader{f.format, r})
r.Close()
tmpWatchList[f.path] = f.path
tmpWatchList[f.path] = true
}
}
......
......@@ -13,7 +13,7 @@ import (
type fileWatch struct {
sync.Mutex
watcher *fsnotify.Watcher
watchList map[string]string
watchList map[string]bool
cancelWatch chan bool
onWatch bool
}
......
......@@ -5,6 +5,8 @@ package configuration
import (
"github.com/fsnotify/fsnotify"
"os"
"path"
)
func (s *Settings[C]) initWatch() *Settings[C] {
......@@ -97,7 +99,19 @@ func (s *Settings[C]) Watch() *Settings[C] {
// add all files to the watch list
for file := range s.fileWatch.watchList {
err := s.fileWatch.watcher.Add(file)
fileInfo, err := os.Stat(file)
if err != nil {
s.errors = append(s.errors, err)
continue
}
if fileInfo.IsDir() {
err = s.fileWatch.watcher.Add(file)
} else {
err = s.fileWatch.watcher.Add(path.Dir(file))
}
if err != nil {
s.errors = append(s.errors, err)
}
......@@ -119,6 +133,11 @@ func (s *Settings[C]) Watch() *Settings[C] {
return
}
_, exist := s.fileWatch.watchList[event.Name]
if !exist {
continue
}
if event.Op&fsnotify.Write == fsnotify.Write {
s.Import()
} else if event.Op&fsnotify.Remove == fsnotify.Remove {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment