diff options
author | Fabiano Frizzo <ffrizzo@gmail.com> | 2016-01-02 14:44:57 -0200 |
---|---|---|
committer | Steve Francia <steve.francia@gmail.com> | 2016-01-04 10:32:21 -0500 |
commit | 8f6f13104e0a3a8e7bdb8ec4de4d8a2af7e1048d (patch) | |
tree | e8a332110ffd7f070450bcbd8810f20627503e13 | |
parent | f310492cb01b4c78aa3f47276bbe026a81496ebe (diff) |
Copy static files changed
Fix watcher copy static theme files for
changed files
See #1644 #1559
-rw-r--r-- | commands/hugo.go | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/commands/hugo.go b/commands/hugo.go index ff10ddde6..66edcfce1 100644 --- a/commands/hugo.go +++ b/commands/hugo.go @@ -452,7 +452,7 @@ func copyStatic() error { } // Copy the site's own static directory - staticDir := helpers.AbsPathify(viper.GetString("StaticDir")) + helpers.FilePathSeparator + staticDir := helpers.GetStaticDirPath() + helpers.FilePathSeparator if _, err := os.Stat(staticDir); err == nil { jww.INFO.Println("syncing from", staticDir, "to", publishDir) return syncer.Sync(publishDir, staticDir) @@ -572,7 +572,7 @@ func NewWatcher(port int) error { for _, ev := range evs { ext := filepath.Ext(ev.Name) - istemp := strings.HasSuffix(ext, "~") || (ext == ".swp") || (ext == ".swx") || (ext == ".tmp") || strings.HasPrefix(ext, ".goutputstream") || strings.HasSuffix(ext, "jb_old___")|| strings.HasSuffix(ext, "jb_bak___") + istemp := strings.HasSuffix(ext, "~") || (ext == ".swp") || (ext == ".swx") || (ext == ".tmp") || strings.HasPrefix(ext, ".goutputstream") || strings.HasSuffix(ext, "jb_old___") || strings.HasSuffix(ext, "jb_bak___") if istemp { continue } @@ -598,9 +598,7 @@ func NewWatcher(port int) error { dynamicChanged = dynamicChanged || !isstatic if isstatic { - if staticPath, err := helpers.MakeStaticPathRelative(ev.Name); err == nil { - staticFilesChanged[staticPath] = true - } + staticFilesChanged[ev.Name] = true } // add new directory to watch list @@ -633,16 +631,26 @@ func NewWatcher(port int) error { publishDir = "" } + staticDir := helpers.GetStaticDirPath() + themeStaticDir := helpers.GetThemesDirPath() + + jww.FEEDBACK.Printf("StaticDir '%s'\nThemeStaticDir '%s'\n", staticDir, themeStaticDir) + for path := range staticFilesChanged { - staticPath := filepath.Join(helpers.AbsPathify(viper.GetString("StaticDir")), path) - jww.FEEDBACK.Printf("Syncing file '%s'\n", staticPath) + var publishPath string + + if strings.HasPrefix(path, staticDir) { + publishPath = filepath.Join(publishDir, strings.TrimPrefix(path, staticDir)) + } else if strings.HasPrefix(path, themeStaticDir) { + publishPath = filepath.Join(publishDir, strings.TrimPrefix(path, themeStaticDir)) + } + jww.FEEDBACK.Printf("Syncing file '%s'", path) - if _, err := os.Stat(staticPath); err == nil { - publishPath := filepath.Join(publishDir, path) - jww.INFO.Println("syncing from", staticPath, "to", publishPath) - err := syncer.Sync(publishPath, staticPath) + if _, err := os.Stat(path); err == nil { + jww.INFO.Println("syncing from ", path, " to ", publishPath) + err := syncer.Sync(publishPath, path) if err != nil { - jww.FEEDBACK.Printf("Error on syncing file '%s'\n", staticPath) + jww.FEEDBACK.Printf("Error on syncing file '%s'\n", path) } } } |