shithub: hugo

Download patch

ref: 3e1b579c17e3597b5a1bafd1d86f6b0b1d06ca52
parent: 91b61b976d8d32ef041506bcbc5f3ed3bf888986
author: Pedro Melo <[email protected]>
date: Tue Jul 26 17:18:15 EDT 2016

Be less aggressive with CHMOD filesystem events

On 4679fbee41d3, rebuild was disabled on
CHMOD filesystem events, but the code is overly aggressive.

In some situations, specially with older Mac's (using a Late 2008
Macbook), the events we receive might be aggregated. On my
particular laptop, I get this events:

    INFO: 2016/07/26 18:08:51 hugo.go:737: Received System Events: ["<path>": WRITE|CHMOD]

These events are ignored because the code only checks for Chmod. This
commit fixes this by checking that the event is also not a Write or Create.

Related to #1587.

--- a/commands/hugo.go
+++ b/commands/hugo.go
@@ -775,7 +775,10 @@
 					// A workaround is to put your site(s) on the Spotlight exception list,
 					// but that may be a little mysterious for most end users.
 					// So, for now, we skip reload on CHMOD.
-					if ev.Op&fsnotify.Chmod == fsnotify.Chmod {
+					// We do have to check for WRITE though. On slower laptops a Chmod
+					// could be aggregated with other important events, and we still want
+					// to rebuild on those
+					if ev.Op&(fsnotify.Chmod|fsnotify.Write|fsnotify.Create) == fsnotify.Chmod {
 						continue
 					}