Advertisement
Guest User

Untitled

a guest
Feb 24th, 2020
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.64 KB | None | 0 0
  1. func follow(filename string) error {
  2. file, _ := os.Open(filename)
  3. watcher, _ := fsnotify.NewWatcher()
  4. defer watcher.Close()
  5. _ = watcher.Add(filename)
  6.  
  7. r := bufio.NewReader(file)
  8. for {
  9. by, err := r.ReadBytes('\n')
  10. if err != nil && err != io.EOF {
  11. return err
  12. }
  13. fmt.Print(string(by))
  14. if err != io.EOF {
  15. continue
  16. }
  17. if err = waitForChange(watcher); err != nil {
  18. return err
  19. }
  20. }
  21. }
  22.  
  23. func waitForChange(w *fsnotify.Watcher) error {
  24. for {
  25. select {
  26. case event := <-w.Events:
  27. if event.Op&fsnotify.Write == fsnotify.Write {
  28. return nil
  29. }
  30. case err := <-w.Errors:
  31. return err
  32. }
  33. }
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement