"syscall"
)
+const (
+ // Flags (from <sys/event.h>)
+ sys_NOTE_DELETE = 0x0001 /* vnode was removed */
+ sys_NOTE_WRITE = 0x0002 /* data contents changed */
+ sys_NOTE_EXTEND = 0x0004 /* size increased */
+ sys_NOTE_ATTRIB = 0x0008 /* attributes changed */
+ sys_NOTE_LINK = 0x0010 /* link count changed */
+ sys_NOTE_RENAME = 0x0020 /* vnode was renamed */
+ sys_NOTE_REVOKE = 0x0040 /* vnode access was revoked */
+
+ // Watch all events
+ sys_NOTE_ALLEVENTS = sys_NOTE_DELETE | sys_NOTE_WRITE | sys_NOTE_ATTRIB | sys_NOTE_RENAME
+
+ // Block for 100 ms on each call to kevent
+ keventWaitTime = 100e6
+)
+
type FileEvent struct {
mask uint32 // Mask of events
Name string // File name (optional)
}
w.watchDirectoryFiles(dirPath)
}
-
-const (
- // Flags (from <sys/event.h>)
- sys_NOTE_DELETE = 0x0001 /* vnode was removed */
- sys_NOTE_WRITE = 0x0002 /* data contents changed */
- sys_NOTE_EXTEND = 0x0004 /* size increased */
- sys_NOTE_ATTRIB = 0x0008 /* attributes changed */
- sys_NOTE_LINK = 0x0010 /* link count changed */
- sys_NOTE_RENAME = 0x0020 /* vnode was renamed */
- sys_NOTE_REVOKE = 0x0040 /* vnode access was revoked */
-
- // Watch all events
- sys_NOTE_ALLEVENTS = sys_NOTE_DELETE | sys_NOTE_WRITE | sys_NOTE_ATTRIB | sys_NOTE_RENAME
-
- // Block for 100 ms on each call to kevent
- keventWaitTime = 100e6
-)
"unsafe"
)
+const (
+ // Options for inotify_init() are not exported
+ // sys_IN_CLOEXEC uint32 = syscall.IN_CLOEXEC
+ // sys_IN_NONBLOCK uint32 = syscall.IN_NONBLOCK
+
+ // Options for AddWatch
+ sys_IN_DONT_FOLLOW uint32 = syscall.IN_DONT_FOLLOW
+ sys_IN_ONESHOT uint32 = syscall.IN_ONESHOT
+ sys_IN_ONLYDIR uint32 = syscall.IN_ONLYDIR
+
+ // The "sys_IN_MASK_ADD" option is not exported, as AddWatch
+ // adds it automatically, if there is already a watch for the given path
+ // sys_IN_MASK_ADD uint32 = syscall.IN_MASK_ADD
+
+ // Events
+ sys_IN_ACCESS uint32 = syscall.IN_ACCESS
+ sys_IN_ALL_EVENTS uint32 = syscall.IN_ALL_EVENTS
+ sys_IN_ATTRIB uint32 = syscall.IN_ATTRIB
+ sys_IN_CLOSE uint32 = syscall.IN_CLOSE
+ sys_IN_CLOSE_NOWRITE uint32 = syscall.IN_CLOSE_NOWRITE
+ sys_IN_CLOSE_WRITE uint32 = syscall.IN_CLOSE_WRITE
+ sys_IN_CREATE uint32 = syscall.IN_CREATE
+ sys_IN_DELETE uint32 = syscall.IN_DELETE
+ sys_IN_DELETE_SELF uint32 = syscall.IN_DELETE_SELF
+ sys_IN_MODIFY uint32 = syscall.IN_MODIFY
+ sys_IN_MOVE uint32 = syscall.IN_MOVE
+ sys_IN_MOVED_FROM uint32 = syscall.IN_MOVED_FROM
+ sys_IN_MOVED_TO uint32 = syscall.IN_MOVED_TO
+ sys_IN_MOVE_SELF uint32 = syscall.IN_MOVE_SELF
+ sys_IN_OPEN uint32 = syscall.IN_OPEN
+
+ sys_AGNOSTIC_EVENTS = sys_IN_MOVED_TO | sys_IN_MOVED_FROM | sys_IN_CREATE | sys_IN_ATTRIB | sys_IN_MODIFY | sys_IN_MOVE_SELF | sys_IN_DELETE | sys_IN_DELETE_SELF
+
+ // Special events
+ sys_IN_ISDIR uint32 = syscall.IN_ISDIR
+ sys_IN_IGNORED uint32 = syscall.IN_IGNORED
+ sys_IN_Q_OVERFLOW uint32 = syscall.IN_Q_OVERFLOW
+ sys_IN_UNMOUNT uint32 = syscall.IN_UNMOUNT
+)
+
type FileEvent struct {
mask uint32 // Mask of events
cookie uint32 // Unique cookie associating related events (for rename(2))
}
return false
}
-
-const (
- // Options for inotify_init() are not exported
- // sys_IN_CLOEXEC uint32 = syscall.IN_CLOEXEC
- // sys_IN_NONBLOCK uint32 = syscall.IN_NONBLOCK
-
- // Options for AddWatch
- sys_IN_DONT_FOLLOW uint32 = syscall.IN_DONT_FOLLOW
- sys_IN_ONESHOT uint32 = syscall.IN_ONESHOT
- sys_IN_ONLYDIR uint32 = syscall.IN_ONLYDIR
-
- // The "sys_IN_MASK_ADD" option is not exported, as AddWatch
- // adds it automatically, if there is already a watch for the given path
- // sys_IN_MASK_ADD uint32 = syscall.IN_MASK_ADD
-
- // Events
- sys_IN_ACCESS uint32 = syscall.IN_ACCESS
- sys_IN_ALL_EVENTS uint32 = syscall.IN_ALL_EVENTS
- sys_IN_ATTRIB uint32 = syscall.IN_ATTRIB
- sys_IN_CLOSE uint32 = syscall.IN_CLOSE
- sys_IN_CLOSE_NOWRITE uint32 = syscall.IN_CLOSE_NOWRITE
- sys_IN_CLOSE_WRITE uint32 = syscall.IN_CLOSE_WRITE
- sys_IN_CREATE uint32 = syscall.IN_CREATE
- sys_IN_DELETE uint32 = syscall.IN_DELETE
- sys_IN_DELETE_SELF uint32 = syscall.IN_DELETE_SELF
- sys_IN_MODIFY uint32 = syscall.IN_MODIFY
- sys_IN_MOVE uint32 = syscall.IN_MOVE
- sys_IN_MOVED_FROM uint32 = syscall.IN_MOVED_FROM
- sys_IN_MOVED_TO uint32 = syscall.IN_MOVED_TO
- sys_IN_MOVE_SELF uint32 = syscall.IN_MOVE_SELF
- sys_IN_OPEN uint32 = syscall.IN_OPEN
-
- sys_AGNOSTIC_EVENTS = sys_IN_MOVED_TO | sys_IN_MOVED_FROM | sys_IN_CREATE | sys_IN_ATTRIB | sys_IN_MODIFY | sys_IN_MOVE_SELF | sys_IN_DELETE | sys_IN_DELETE_SELF
-
- // Special events
- sys_IN_ISDIR uint32 = syscall.IN_ISDIR
- sys_IN_IGNORED uint32 = syscall.IN_IGNORED
- sys_IN_Q_OVERFLOW uint32 = syscall.IN_Q_OVERFLOW
- sys_IN_UNMOUNT uint32 = syscall.IN_UNMOUNT
-)
"unsafe"
)
+const (
+ // Options for AddWatch
+ sys_FS_ONESHOT = 0x80000000
+ sys_FS_ONLYDIR = 0x1000000
+
+ // Events
+ sys_FS_ACCESS = 0x1
+ sys_FS_ALL_EVENTS = 0xfff
+ sys_FS_ATTRIB = 0x4
+ sys_FS_CLOSE = 0x18
+ sys_FS_CREATE = 0x100
+ sys_FS_DELETE = 0x200
+ sys_FS_DELETE_SELF = 0x400
+ sys_FS_MODIFY = 0x2
+ sys_FS_MOVE = 0xc0
+ sys_FS_MOVED_FROM = 0x40
+ sys_FS_MOVED_TO = 0x80
+ sys_FS_MOVE_SELF = 0x800
+
+ // Special events
+ sys_FS_IGNORED = 0x8000
+ sys_FS_Q_OVERFLOW = 0x4000
+)
+
// Event is the type of the notification messages
// received on the watcher's Event channel.
type FileEvent struct {
}
return 0
}
-
-const (
- // Options for AddWatch
- sys_FS_ONESHOT = 0x80000000
- sys_FS_ONLYDIR = 0x1000000
-
- // Events
- sys_FS_ACCESS = 0x1
- sys_FS_ALL_EVENTS = 0xfff
- sys_FS_ATTRIB = 0x4
- sys_FS_CLOSE = 0x18
- sys_FS_CREATE = 0x100
- sys_FS_DELETE = 0x200
- sys_FS_DELETE_SELF = 0x400
- sys_FS_MODIFY = 0x2
- sys_FS_MOVE = 0xc0
- sys_FS_MOVED_FROM = 0x40
- sys_FS_MOVED_TO = 0x80
- sys_FS_MOVE_SELF = 0x800
-
- // Special events
- sys_FS_IGNORED = 0x8000
- sys_FS_Q_OVERFLOW = 0x4000
-)