summaryrefslogtreecommitdiffstats
path: root/commands/hugo.go
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2021-07-05 10:13:41 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2021-07-05 10:23:29 +0200
commite31b1d194655ac3a38fe903ff3995806b129b88a (patch)
tree8ffac9e39952c9f547b7b4e92620c1c05c84bfc5 /commands/hugo.go
parent43a23239b2e3ad602c06d9af0b648e0304fc8744 (diff)
commands: Make the --poll flag a duration
So you can do: ``` hugo server --poll 700ms ``` See #8720
Diffstat (limited to 'commands/hugo.go')
-rw-r--r--commands/hugo.go19
1 files changed, 14 insertions, 5 deletions
diff --git a/commands/hugo.go b/commands/hugo.go
index 7f3b41048..86aa8d573 100644
--- a/commands/hugo.go
+++ b/commands/hugo.go
@@ -30,6 +30,8 @@ import (
"syscall"
"time"
+ "github.com/gohugoio/hugo/common/types"
+
"github.com/gohugoio/hugo/hugofs"
"github.com/gohugoio/hugo/resources/page"
@@ -820,7 +822,7 @@ func (c *commandeer) fullRebuild(changeType string) {
}
// newWatcher creates a new watcher to watch filesystem events.
-func (c *commandeer) newWatcher(poll bool, dirList ...string) (*watcher.Batcher, error) {
+func (c *commandeer) newWatcher(pollIntervalStr string, dirList ...string) (*watcher.Batcher, error) {
if runtime.GOOS == "darwin" {
tweakLimit()
}
@@ -830,10 +832,17 @@ func (c *commandeer) newWatcher(poll bool, dirList ...string) (*watcher.Batcher,
return nil, err
}
- // The second interval is used by the poll based watcher.
- // Setting a shorter interval would make it snappier,
- // but it would consume more CPU.
- watcher, err := watcher.New(500*time.Millisecond, 700*time.Millisecond, poll)
+ var pollInterval time.Duration
+ poll := pollIntervalStr != ""
+ if poll {
+ pollInterval, err = types.ToDurationE(pollIntervalStr)
+ if err != nil {
+ return nil, fmt.Errorf("invalid value for flag poll: %s", err)
+ }
+ c.logger.Printf("Use watcher with poll interval %v", pollInterval)
+ }
+
+ watcher, err := watcher.New(500*time.Millisecond, pollInterval, poll)
if err != nil {
return nil, err
}