inotify

package module
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 30, 2017 License: BSD-3-Clause Imports: 7 Imported by: 3

README

This repository is a fork of the unmaintained/deprecated golang.org/x/exp/inotify library. This code was mirrored for a time on Github but is now deleted from the mirror.

As we and a number of other people still use the library, we thought it would be best to fork it.

How we created the fork:

  1. Cloned the following mirror:
git clone https://github.com/golang/exp
  1. Reverted back to the inotify: fix memory leak in Watcher commit:
git reset --hard 292a51b8d262487dab23a588950e8052d63d9113
  1. Copied the inotify directory and licensing info into a new git repo

This was not our favorite way to fork inotify but we didn't have many other choices. We chose to fork this perfectly good (but deprecated) library that fulfills our needs because the newer one (fsnotify) simply does not.

For more information about how we came to the decision to fork this library, see the following issue: Need fully functional inotify golang package

Documentation

Overview

Package inotify implements a wrapper for the Linux inotify system.

Example:

watcher, err := inotify.NewWatcher()
if err != nil {
    log.Fatal(err)
}
err = watcher.Watch("/tmp")
if err != nil {
    log.Fatal(err)
}
for {
    select {
    case ev := <-watcher.Event:
        log.Println("event:", ev)
    case err := <-watcher.Error:
        log.Println("error:", err)
    }
}

Index

Constants

View Source
const (

	// Options for AddWatch
	IN_DONT_FOLLOW uint32 = syscall.IN_DONT_FOLLOW
	IN_ONESHOT     uint32 = syscall.IN_ONESHOT
	IN_ONLYDIR     uint32 = syscall.IN_ONLYDIR

	// Events
	IN_ACCESS        uint32 = syscall.IN_ACCESS
	IN_ALL_EVENTS    uint32 = syscall.IN_ALL_EVENTS
	IN_ATTRIB        uint32 = syscall.IN_ATTRIB
	IN_CLOSE         uint32 = syscall.IN_CLOSE
	IN_CLOSE_NOWRITE uint32 = syscall.IN_CLOSE_NOWRITE
	IN_CLOSE_WRITE   uint32 = syscall.IN_CLOSE_WRITE
	IN_CREATE        uint32 = syscall.IN_CREATE
	IN_DELETE        uint32 = syscall.IN_DELETE
	IN_DELETE_SELF   uint32 = syscall.IN_DELETE_SELF
	IN_MODIFY        uint32 = syscall.IN_MODIFY
	IN_MOVE          uint32 = syscall.IN_MOVE
	IN_MOVED_FROM    uint32 = syscall.IN_MOVED_FROM
	IN_MOVED_TO      uint32 = syscall.IN_MOVED_TO
	IN_MOVE_SELF     uint32 = syscall.IN_MOVE_SELF
	IN_OPEN          uint32 = syscall.IN_OPEN

	// Special events
	IN_ISDIR      uint32 = syscall.IN_ISDIR
	IN_IGNORED    uint32 = syscall.IN_IGNORED
	IN_Q_OVERFLOW uint32 = syscall.IN_Q_OVERFLOW
	IN_UNMOUNT    uint32 = syscall.IN_UNMOUNT
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Event

type Event struct {
	Mask   uint32 // Mask of events
	Cookie uint32 // Unique cookie associating related events (for rename(2))
	Name   string // File name (optional)
}

func (*Event) String

func (e *Event) String() string

String formats the event e in the form "filename: 0xEventMask = IN_ACCESS|IN_ATTRIB_|..."

type Watcher

type Watcher struct {
	Error chan error  // Errors are sent on this channel
	Event chan *Event // Events are returned on this channel
	// contains filtered or unexported fields
}

func NewWatcher

func NewWatcher() (*Watcher, error)

NewWatcher creates and returns a new inotify instance using inotify_init(2)

func (*Watcher) AddWatch

func (w *Watcher) AddWatch(path string, flags uint32) error

AddWatch adds path to the watched file set. The flags are interpreted as described in inotify_add_watch(2).

func (*Watcher) Close

func (w *Watcher) Close() error

Close closes an inotify watcher instance It sends a message to the reader goroutine to quit and removes all watches associated with the inotify instance

func (*Watcher) RemoveWatch

func (w *Watcher) RemoveWatch(path string) error

RemoveWatch removes path from the watched file set.

func (*Watcher) Watch

func (w *Watcher) Watch(path string) error

Watch adds path to the watched file set, watching all events.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL