Skip to content

xiaoyang-chen/file-watcher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

# file-watcher

## encapsulation of github.com/fsnotify/fsnotify and github.com/radovskyb/watcher

### example
```go
package main

import (
	"fmt"
	"os"
	"os/signal"
	"syscall"
	"time"

	"github.com/xiaoyang-chen/file-watcher/logger"
	"github.com/xiaoyang-chen/file-watcher/watcher"
)

func main() {

	fmt.Println("main start")
	defer fmt.Println("main end")
	// set watcher
	// fsnotifywatcher
	var fsnotifywatcher, err = watcher.NewFsnotifyWatcher(logger.NewStdLog(), func(etIn watcher.Event) (etOut watcher.Event, isSkip bool) {
		fmt.Println("fsnotifywatcher", etIn.String())
		return etIn, true
	})
	if err != nil {
		panic(err)
	}
	defer fsnotifywatcher.Close()
	fsnotifywatcher.AddPaths(".")
	// radovskybwatcher
	radovskybwatcher, err := watcher.NewRadovskybwatcherWatcher(logger.NewStdLog(), func(etIn watcher.Event) (etOut watcher.Event, isSkip bool) {
		fmt.Println("radovskybwatcher", etIn.String())
		return etIn, true
	}, time.Second)
	if err != nil {
		panic(err)
	}
	defer radovskybwatcher.Close()
	radovskybwatcher.AddPaths(".")
	// notify os signal
	var exitSign = make(chan os.Signal, 1)
	go func() {
		time.Sleep(5 * time.Second)
		exitSign <- syscall.SIGINT
	}()
	signal.Notify(exitSign,
		syscall.SIGHUP, syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT,
	)
	<-exitSign
}
```

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages