summaryrefslogtreecommitdiffstats
path: root/commands
diff options
context:
space:
mode:
authorFabiano Frizzo <ffrizzo@gmail.com>2016-01-02 14:44:57 -0200
committerSteve Francia <steve.francia@gmail.com>2016-01-04 10:32:21 -0500
commit8f6f13104e0a3a8e7bdb8ec4de4d8a2af7e1048d (patch)
treee8a332110ffd7f070450bcbd8810f20627503e13 /commands
parentf310492cb01b4c78aa3f47276bbe026a81496ebe (diff)
Copy static files changed
Fix watcher copy static theme files for changed files See #1644 #1559
Diffstat (limited to 'commands')
-rw-r--r--commands/hugo.go32
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)
}
}
}