watcherfs.go add for TDD
authorjaehoon.hyun <jaehoon.hyun@samsung.com>
Wed, 27 Mar 2019 01:03:47 +0000 (10:03 +0900)
committerjaehoon.hyun <jaehoon.hyun@samsung.com>
Wed, 27 Mar 2019 01:03:47 +0000 (10:03 +0900)
src/configuremgr/incubator/watcherfs.go [new file with mode: 0644]

diff --git a/src/configuremgr/incubator/watcherfs.go b/src/configuremgr/incubator/watcherfs.go
new file mode 100644 (file)
index 0000000..01d4f40
--- /dev/null
@@ -0,0 +1,45 @@
+package main\r
+\r
+import (\r
+    "log"\r
+       "github.com/fsnotify/fsnotify"\r
+)\r
+\r
+func main() {\r
+\r
+    watcher, err := fsnotify.NewWatcher()\r
+    if err != nil {\r
+        log.Fatal(err)\r
+    }\r
+    defer watcher.Close()\r
+\r
+    done := make(chan bool)\r
+    go func() {\r
+        for {\r
+            select {\r
+            case event, ok := <-watcher.Events:\r
+                log.Println("log event:", event)\r
+                \r
+                if !ok {\r
+                    return\r
+                }\r
+                if event.Op&fsnotify.Write == fsnotify.Write {\r
+                    log.Println("modified file:", event.Name)\r
+                }\r
+            case err, ok := <-watcher.Errors:\r
+                if !ok {\r
+                    return\r
+                }\r
+                log.Println("error:", err)\r
+            // default:\r
+                // fmt.Println("default")\r
+            }\r
+        }\r
+    }()\r
+\r
+    err = watcher.Add("/tmp/foo")\r
+    if err != nil {\r
+        log.Fatal(err)\r
+    }\r
+    <-done\r
+}
\ No newline at end of file