aboutsummaryrefslogtreecommitdiffhomepage
path: root/vendor/github.com/tdewolff/minify/cmd/minify/watch.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/tdewolff/minify/cmd/minify/watch.go')
-rw-r--r--vendor/github.com/tdewolff/minify/cmd/minify/watch.go106
1 files changed, 0 insertions, 106 deletions
diff --git a/vendor/github.com/tdewolff/minify/cmd/minify/watch.go b/vendor/github.com/tdewolff/minify/cmd/minify/watch.go
deleted file mode 100644
index d97cbc8..0000000
--- a/vendor/github.com/tdewolff/minify/cmd/minify/watch.go
+++ /dev/null
@@ -1,106 +0,0 @@
-package main
-
-import (
- "os"
- "path/filepath"
-
- "github.com/fsnotify/fsnotify"
-)
-
-type RecursiveWatcher struct {
- watcher *fsnotify.Watcher
- paths map[string]bool
- recursive bool
-}
-
-func NewRecursiveWatcher(recursive bool) (*RecursiveWatcher, error) {
- watcher, err := fsnotify.NewWatcher()
- if err != nil {
- return nil, err
- }
- return &RecursiveWatcher{watcher, make(map[string]bool), recursive}, nil
-}
-
-func (rw *RecursiveWatcher) Close() error {
- return rw.watcher.Close()
-}
-
-func (rw *RecursiveWatcher) AddPath(root string) error {
- info, err := os.Stat(root)
- if err != nil {
- return err
- }
-
- if info.Mode().IsRegular() {
- root = filepath.Dir(root)
- if rw.paths[root] {
- return nil
- }
- if err := rw.watcher.Add(root); err != nil {
- return err
- }
- rw.paths[root] = true
- return nil
- } else if !rw.recursive {
- if rw.paths[root] {
- return nil
- }
- if err := rw.watcher.Add(root); err != nil {
- return err
- }
- rw.paths[root] = true
- return nil
- } else {
- return filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
- if err != nil {
- return err
- }
- if info.Mode().IsDir() {
- if !validDir(info) || rw.paths[path] {
- return filepath.SkipDir
- }
- if err := rw.watcher.Add(path); err != nil {
- return err
- }
- rw.paths[path] = true
- }
- return nil
- })
- }
-}
-
-func (rw *RecursiveWatcher) Run() chan string {
- files := make(chan string, 10)
- go func() {
- for rw.watcher.Events != nil && rw.watcher.Errors != nil {
- select {
- case event, ok := <-rw.watcher.Events:
- if !ok {
- rw.watcher.Events = nil
- break
- }
- if info, err := os.Stat(event.Name); err == nil {
- if validDir(info) {
- if event.Op&fsnotify.Create == fsnotify.Create {
- if err := rw.AddPath(event.Name); err != nil {
- Error.Println(err)
- }
- }
- } else if validFile(info) {
- if event.Op&fsnotify.Write == fsnotify.Write {
- files <- event.Name
- }
- }
- }
- case err, ok := <-rw.watcher.Errors:
- if !ok {
- rw.watcher.Errors = nil
- break
- }
- Error.Println(err)
- }
- }
- close(files)
- }()
- return files
-}