Fix static file change detection on Windows.

Fixed windows uses different filepath separator. The filepath.ToSlash
shouldn't be used, because it can cause errors in filepath suffix and prefix
testing since "c:\a" isn't a prefix of "c:/a/b/c".
This commit is contained in:
Egon Elbre 2013-12-15 16:31:29 +02:00 committed by spf13
parent 065928fcf0
commit e46148f948
2 changed files with 10 additions and 6 deletions

View file

@ -198,16 +198,20 @@ func NewWatcher(port int) error {
}
func watchChange(ev *fsnotify.FileEvent) {
ext := filepath.Ext(ev.Name)
// ignore temp files
istemp := strings.HasSuffix(ext, "~") || (ext == ".swp") || (ext == ".tmp")
if istemp {
return
}
if strings.HasPrefix(ev.Name, Config.GetAbsPath(Config.StaticDir)) {
fmt.Println("Static file changed, syncing\n")
utils.CheckErr(copyStatic(), fmt.Sprintf("Error copying static files to %s", Config.GetAbsPath(Config.PublishDir)))
} else {
if !ev.IsRename() { // Rename is always accompanied by a create or modify
// Ignoring temp files created by editors (vim)
if !strings.HasSuffix(ev.Name, "~") && !strings.HasSuffix(ev.Name, ".swp") {
fmt.Println("Change detected, rebuilding site\n")
utils.StopOnErr(buildSite(true))
}
}
}
}

View file

@ -161,7 +161,7 @@ func (c *Config) GetAbsPath(name string) string {
return name
}
return filepath.ToSlash(filepath.Join(c.GetPath(), name))
return filepath.Join(c.GetPath(), name)
}
func (c *Config) findConfigFile(configFileName string) (string, error) {