aboutsummaryrefslogtreecommitdiffhomepage
path: root/watcher
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <[email protected]>2020-11-20 09:32:16 +0100
committerBjørn Erik Pedersen <[email protected]>2020-11-20 09:32:16 +0100
commitcaf16c20853947138883f6460682e19733895f52 (patch)
tree25a4416547099f2189f390d523e2292f4ad1ae01 /watcher
parentb298c06e0551e3eba10b39ae5668b7a6a36a08a7 (diff)
downloadhugo-caf16c20853947138883f6460682e19733895f52.tar.gz
hugo-caf16c20853947138883f6460682e19733895f52.zip
docs: Regenerate docshelper
Diffstat (limited to 'watcher')
-rw-r--r--watcher/batcher.go73
1 files changed, 0 insertions, 73 deletions
diff --git a/watcher/batcher.go b/watcher/batcher.go
deleted file mode 100644
index 6f4b276cf..000000000
--- a/watcher/batcher.go
+++ /dev/null
@@ -1,73 +0,0 @@
-// Copyright 2015 The Hugo Authors. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package watcher
-
-import (
- "time"
-
- "github.com/fsnotify/fsnotify"
-)
-
-// Batcher batches file watch events in a given interval.
-type Batcher struct {
- *fsnotify.Watcher
- interval time.Duration
- done chan struct{}
-
- Events chan []fsnotify.Event // Events are returned on this channel
-}
-
-// New creates and starts a Batcher with the given time interval.
-func New(interval time.Duration) (*Batcher, error) {
- watcher, err := fsnotify.NewWatcher()
-
- batcher := &Batcher{}
- batcher.Watcher = watcher
- batcher.interval = interval
- batcher.done = make(chan struct{}, 1)
- batcher.Events = make(chan []fsnotify.Event, 1)
-
- if err == nil {
- go batcher.run()
- }
-
- return batcher, err
-}
-
-func (b *Batcher) run() {
- tick := time.Tick(b.interval)
- evs := make([]fsnotify.Event, 0)
-OuterLoop:
- for {
- select {
- case ev := <-b.Watcher.Events:
- evs = append(evs, ev)
- case <-tick:
- if len(evs) == 0 {
- continue
- }
- b.Events <- evs
- evs = make([]fsnotify.Event, 0)
- case <-b.done:
- break OuterLoop
- }
- }
- close(b.done)
-}
-
-// Close stops the watching of the files.
-func (b *Batcher) Close() {
- b.done <- struct{}{}
- b.Watcher.Close()
-}