1
1
package main
2
2
3
3
import (
4
+ "flag"
4
5
"fmt"
5
6
"os"
6
7
"os/exec"
@@ -12,8 +13,14 @@ import (
12
13
)
13
14
14
15
var watcher * fsnotify.Watcher
16
+ var container string
17
+
18
+ func init () {
19
+ flag .StringVar (& container , "container" , "radix-web-dev_container" , "Name of the container instance that you wish to notify of filesystem changes" )
20
+ }
15
21
16
22
func main () {
23
+ flag .Parse ()
17
24
watcher , _ = fsnotify .NewWatcher ()
18
25
defer watcher .Close ()
19
26
@@ -43,22 +50,21 @@ func notifyDocker(event fsnotify.Event) {
43
50
if event .Op != fsnotify .Write {
44
51
return
45
52
}
53
+ file := filepath .ToSlash (event .Name )
46
54
47
- result , err := exec .Command ("docker" , "exec" , "radix-web-dev_container" , "stat" , "-c" , "%a" , event .Name ).Output ()
48
- if strings .Contains (event .Name , ".git" ) {
49
- return
50
- }
55
+ fmt .Println (fmt .Sprintf ("%s: %s" , event .Op , file ))
56
+
57
+ result , err := exec .Command ("docker" , "exec" , container , "stat" , "-c" , "%a" , file ).Output ()
51
58
52
59
perms , err := strconv .Atoi (strings .TrimSuffix (string (result ), "\n " ))
53
60
if err != nil {
54
61
fmt .Println ("Failed to convert permissions: " , err )
55
62
return
56
63
}
57
- _ , err = exec .Command ("docker" , "exec" , "radix-web-dev_container" , "/bin/sh" , "-c" , fmt .Sprintf ("chmod %d %s" , perms , event . Name )).Output ()
64
+ _ , err = exec .Command ("docker" , "exec" , container , "/bin/sh" , "-c" , fmt .Sprintf ("chmod %d %s" , perms , file )).Output ()
58
65
if err != nil {
59
66
fmt .Printf ("Error notifying container about file change: %v" , err )
60
67
}
61
- fmt .Println (fmt .Sprintf ("%s: %s" , event .Op , event .Name ))
62
68
}
63
69
64
70
func watchDir (path string , fi os.FileInfo , err error ) error {
0 commit comments