Browse Source

Update fsnotify package

Ask Bjørn Hansen 11 years ago
parent
commit
4755f70710
1 changed files with 12 additions and 6 deletions
  1. 12 6
      config.go

+ 12 - 6
config.go

@@ -1,12 +1,13 @@
 package main
 package main
 
 
 import (
 import (
-	"code.google.com/p/gcfg"
 	"fmt"
 	"fmt"
-	"github.com/howeyc/fsnotify"
 	"log"
 	"log"
 	"os"
 	"os"
 	"time"
 	"time"
+
+	"code.google.com/p/gcfg"
+	"gopkg.in/fsnotify.v1"
 )
 )
 
 
 type AppConfig struct {
 type AppConfig struct {
@@ -33,21 +34,26 @@ func configWatcher(fileName string) {
 		return
 		return
 	}
 	}
 
 
-	if err := watcher.Watch(*flagconfig); err != nil {
+	if err := watcher.Add(*flagconfig); err != nil {
 		fmt.Println(err)
 		fmt.Println(err)
 		return
 		return
 	}
 	}
 
 
 	for {
 	for {
 		select {
 		select {
-		case ev := <-watcher.Event:
+		case ev := <-watcher.Events:
 			if ev.Name == fileName {
 			if ev.Name == fileName {
-				if ev.IsCreate() || ev.IsModify() || ev.IsRename() {
+				// Write = when the file is updated directly
+				// Rename = when it's updated atomicly
+				// Chmod = for `touch`
+				if ev.Op&fsnotify.Write == fsnotify.Write ||
+					ev.Op&fsnotify.Rename == fsnotify.Rename ||
+					ev.Op&fsnotify.Chmod == fsnotify.Chmod {
 					time.Sleep(200 * time.Millisecond)
 					time.Sleep(200 * time.Millisecond)
 					configReader(fileName)
 					configReader(fileName)
 				}
 				}
 			}
 			}
-		case err := <-watcher.Error:
+		case err := <-watcher.Errors:
 			log.Println("fsnotify error:", err)
 			log.Println("fsnotify error:", err)
 		}
 		}
 	}
 	}