File tree Expand file tree Collapse file tree 3 files changed +66
-0
lines changed
Expand file tree Collapse file tree 3 files changed +66
-0
lines changed Original file line number Diff line number Diff line change 1+ package main
2+
3+ import "fmt"
4+
5+ func main () {
6+ fmt .Println ("Hello World! 1" )
7+ fmt .Println ("Hello World! 2" )
8+ fmt .Println ("Hello World! 3" )
9+ }
Original file line number Diff line number Diff line change 1+ module godemon
2+
3+ go 1.15
Original file line number Diff line number Diff line change 1+ package main
2+
3+ import (
4+ "fmt"
5+ "os"
6+ "os/exec"
7+ "time"
8+ )
9+
10+ func watchFile (filePath string ) error {
11+ initialStat , err := os .Stat (filePath )
12+ if err != nil {
13+ return err
14+ }
15+
16+ for {
17+ stat , err := os .Stat (filePath )
18+ if err != nil {
19+ return err
20+ }
21+
22+ if stat .Size () != initialStat .Size () || stat .ModTime () != initialStat .ModTime () {
23+ break
24+ }
25+
26+ time .Sleep (1 * time .Second )
27+ }
28+
29+ return nil
30+ }
31+
32+ func main () {
33+ doneChan := make (chan bool )
34+ for true {
35+ go func (doneChan chan bool ) {
36+ defer func () {
37+ doneChan <- true
38+ }()
39+
40+ err := watchFile ("./app/main.go" )
41+ if err != nil {
42+ fmt .Println (err )
43+ }
44+
45+ fmt .Println ("File has been changed" )
46+ cmd := exec .Command ("go" , "run" , "./app/main.go" )
47+ cmd .Stdout = os .Stdout
48+ cmd .Stderr = os .Stderr
49+ cmd .Run ()
50+ }(doneChan )
51+
52+ <- doneChan
53+ }
54+ }
You can’t perform that action at this time.
0 commit comments