1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- package conf
- import (
- "log"
- "sync"
-
- "github.com/fsnotify/fsnotify"
- )
- var (
-
- confLock = new(sync.RWMutex)
- )
- func NewWatcher(paths string, config interface{}) {
- Watch(paths, config)
- }
- func Watch(paths string, config interface{}) {
- watcher, err := fsnotify.NewWatcher()
- if err != nil {
- log.Fatal("fsnotify.NewWatcher(): ", err)
- }
- defer watcher.Close()
- done := make(chan bool)
- go func() {
- for {
- select {
- case event := <-watcher.Events:
- log.Println("watcher events: ", event)
-
-
-
-
- if event.Op&fsnotify.Write == fsnotify.Write {
-
- Init(paths, config)
- log.Println("watch config: ", config)
- }
- case err := <-watcher.Errors:
- log.Println("watcher.Errors error: ", err)
- }
- }
- }()
- err = watcher.Add(paths)
- if err != nil {
- log.Fatal("watcher.Add: ", err)
- }
- <-done
- }
|