c13877335c596a4818530e0edf25285df7927b84
[platform/core/system/edge-orchestration.git] / src / configuremgr / incubator / watcherfs.go
1 package main\r
2 \r
3 import (\r
4         "log"\r
5         "github.com/fsnotify/fsnotify"\r
6 )\r
7 \r
8 func main() {\r
9 \r
10     watcher, err := fsnotify.NewWatcher()\r
11     if err != nil {\r
12         log.Fatal(err)\r
13     }\r
14     defer watcher.Close()\r
15 \r
16     done := make(chan bool)\r
17     go func() {\r
18         for {\r
19             select {\r
20             case event, ok := <-watcher.Events:\r
21                 log.Println("log event:", event)\r
22                 \r
23                 if !ok {\r
24                     return\r
25                 }\r
26                 if event.Op & fsnotify.Create == fsnotify.Create {\r
27                                                 log.Println("Created " + event.Name)\r
28                 }\r
29             case err, ok := <-watcher.Errors:\r
30                 if !ok {\r
31                     return\r
32                 }\r
33                 log.Println("error:", err)\r
34             // default:\r
35                 // fmt.Println("default")\r
36             }\r
37         }\r
38     }()\r
39 \r
40     err = watcher.Add("/tmp/foo")\r
41     if err != nil {\r
42         log.Fatal(err)\r
43     }\r
44     <-done\r
45 }