...

Package watch

import "github.com/hpcloud/tail/watch"
Overview
Index

Overview ▾

Variables

var POLL_DURATION time.Duration

func Cleanup

func Cleanup(fname string) error

Cleanup removes the watch for the input filename if necessary.

func Events

func Events(fname string) <-chan fsnotify.Event

Events returns a channel to which FileEvents corresponding to the input filename will be sent. This channel will be closed when removeWatch is called on this filename.

func RemoveWatch

func RemoveWatch(fname string) error

RemoveWatch signals the run goroutine to remove the watch for the input filename

func RemoveWatchCreate

func RemoveWatchCreate(fname string) error

RemoveWatch create signals the run goroutine to remove the watch for the input filename

func Watch

func Watch(fname string) error

Watch signals the run goroutine to begin watching the input filename

func WatchCreate

func WatchCreate(fname string) error

Watch create signals the run goroutine to begin watching the input filename if call the WatchCreate function, don't call the Cleanup, call the RemoveWatchCreate

type FileChanges

type FileChanges struct {
    Modified  chan bool // Channel to get notified of modifications
    Truncated chan bool // Channel to get notified of truncations
    Deleted   chan bool // Channel to get notified of deletions/renames
}

func NewFileChanges

func NewFileChanges() *FileChanges

func (*FileChanges) NotifyDeleted

func (fc *FileChanges) NotifyDeleted()

func (*FileChanges) NotifyModified

func (fc *FileChanges) NotifyModified()

func (*FileChanges) NotifyTruncated

func (fc *FileChanges) NotifyTruncated()

type FileWatcher

FileWatcher monitors file-level events.

type FileWatcher interface {
    // BlockUntilExists blocks until the file comes into existence.
    BlockUntilExists(*tomb.Tomb) error

    // ChangeEvents reports on changes to a file, be it modification,
    // deletion, renames or truncations. Returned FileChanges group of
    // channels will be closed, thus become unusable, after a deletion
    // or truncation event.
    // In order to properly report truncations, ChangeEvents requires
    // the caller to pass their current offset in the file.
    ChangeEvents(*tomb.Tomb, int64) (*FileChanges, error)
}

type InotifyFileWatcher

InotifyFileWatcher uses inotify to monitor file changes.

type InotifyFileWatcher struct {
    Filename string
    Size     int64
}

func NewInotifyFileWatcher

func NewInotifyFileWatcher(filename string) *InotifyFileWatcher

func (*InotifyFileWatcher) BlockUntilExists

func (fw *InotifyFileWatcher) BlockUntilExists(t *tomb.Tomb) error

func (*InotifyFileWatcher) ChangeEvents

func (fw *InotifyFileWatcher) ChangeEvents(t *tomb.Tomb, pos int64) (*FileChanges, error)

type InotifyTracker

type InotifyTracker struct {
    // contains filtered or unexported fields
}

type PollingFileWatcher

PollingFileWatcher polls the file for changes.

type PollingFileWatcher struct {
    Filename string
    Size     int64
}

func NewPollingFileWatcher

func NewPollingFileWatcher(filename string) *PollingFileWatcher

func (*PollingFileWatcher) BlockUntilExists

func (fw *PollingFileWatcher) BlockUntilExists(t *tomb.Tomb) error

func (*PollingFileWatcher) ChangeEvents

func (fw *PollingFileWatcher) ChangeEvents(t *tomb.Tomb, pos int64) (*FileChanges, error)