diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2021-07-05 10:13:41 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2021-07-05 10:23:29 +0200 |
commit | e31b1d194655ac3a38fe903ff3995806b129b88a (patch) | |
tree | 8ffac9e39952c9f547b7b4e92620c1c05c84bfc5 /commands/hugo.go | |
parent | 43a23239b2e3ad602c06d9af0b648e0304fc8744 (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.go | 19 |
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 } |