1
0
mirror of https://github.com/beego/bee.git synced 2024-12-26 01:10:50 +00:00

skip TMP files and gofmt events

This commit is contained in:
Unknown 2013-07-24 14:58:13 +08:00
parent 7e4fd3f528
commit 0feb778d4d

View File

@ -6,9 +6,9 @@ import (
"log" "log"
"os" "os"
"os/exec" "os/exec"
"strings"
"sync" "sync"
"time" "time"
"strings"
) )
var ( var (
@ -28,14 +28,21 @@ func NewWatcher(paths []string) {
select { select {
case e := <-watcher.Event: case e := <-watcher.Event:
isbuild := true isbuild := true
if t, ok := eventTime[e.String()]; ok {
// Skip TMP files for Sublime Text.
if checkTMPFile(e.Name) {
continue
}
if t, ok := eventTime[e.Name]; ok {
// if 500ms change many times, then ignore it. // if 500ms change many times, then ignore it.
// for liteide often gofmt code after save. // for liteide often gofmt code after save.
if t.Add(time.Millisecond * 500).After(time.Now()) { if t.Add(time.Millisecond * 500).After(time.Now()) {
fmt.Println("[SKIP]", e.String())
isbuild = false isbuild = false
} }
} }
eventTime[e.String()] = time.Now() eventTime[e.Name] = time.Now()
if isbuild { if isbuild {
fmt.Println(e) fmt.Println(e)
@ -106,3 +113,11 @@ func Start(appname string) {
go cmd.Run() go cmd.Run()
} }
// checkTMPFile returns true if the event was for TMP files.
func checkTMPFile(name string) bool {
if strings.HasSuffix(strings.ToLower(name), ".tmp") {
return true
}
return false
}