func (e *FileEvent) IsCreate() bool { return e.create }
// IsDelete reports whether the FileEvent was triggerd by a delete
-func (e *FileEvent) IsDelete() bool { return (e.mask & NOTE_DELETE) == NOTE_DELETE }
+func (e *FileEvent) IsDelete() bool { return (e.mask & sys_NOTE_DELETE) == sys_NOTE_DELETE }
// IsModify reports whether the FileEvent was triggerd by a file modification
func (e *FileEvent) IsModify() bool {
- return ((e.mask&NOTE_WRITE) == NOTE_WRITE || (e.mask&NOTE_ATTRIB) == NOTE_ATTRIB)
+ return ((e.mask&sys_NOTE_WRITE) == sys_NOTE_WRITE || (e.mask&sys_NOTE_ATTRIB) == sys_NOTE_ATTRIB)
}
// IsRename reports whether the FileEvent was triggerd by a change name
-func (e *FileEvent) IsRename() bool { return (e.mask & NOTE_RENAME) == NOTE_RENAME }
+func (e *FileEvent) IsRename() bool { return (e.mask & sys_NOTE_RENAME) == sys_NOTE_RENAME }
type Watcher struct {
mu sync.Mutex // Mutex for the Watcher itself.
}
}
- fd, errno := syscall.Open(path, OPEN_FLAGS, 0700)
+ fd, errno := syscall.Open(path, open_FLAGS, 0700)
if fd == -1 {
return errno
}
w.pmut.Lock()
w.enmut.Lock()
if w.finfo[watchfd].IsDir() &&
- (flags&NOTE_WRITE) == NOTE_WRITE &&
- (!found || (w.enFlags[path]&NOTE_WRITE) != NOTE_WRITE) {
+ (flags&sys_NOTE_WRITE) == sys_NOTE_WRITE &&
+ (!found || (w.enFlags[path]&sys_NOTE_WRITE) != sys_NOTE_WRITE) {
watchDir = true
}
w.enmut.Unlock()
// Watch adds path to the watched file set, watching all events.
func (w *Watcher) watch(path string) error {
- return w.addWatch(path, NOTE_ALLEVENTS)
+ return w.addWatch(path, sys_NOTE_ALLEVENTS)
}
// RemoveWatch removes path from the watched file set.
// receive the delete event
if _, err := os.Lstat(fileEvent.Name); os.IsNotExist(err) {
// mark is as delete event
- fileEvent.mask |= NOTE_DELETE
+ fileEvent.mask |= sys_NOTE_DELETE
}
}
if fileInfo.IsDir() == false {
// Watch file to mimic linux fsnotify
- e := w.addWatch(filePath, NOTE_ALLEVENTS)
+ e := w.addWatch(filePath, sys_NOTE_ALLEVENTS)
if e != nil {
return e
}
w.enmut.Lock()
currFlags, found := w.enFlags[filePath]
w.enmut.Unlock()
- var newFlags uint32 = NOTE_DELETE
+ var newFlags uint32 = sys_NOTE_DELETE
if found {
newFlags |= currFlags
}
const (
// Flags (from <sys/event.h>)
- NOTE_DELETE = 0x0001 /* vnode was removed */
- NOTE_WRITE = 0x0002 /* data contents changed */
- NOTE_EXTEND = 0x0004 /* size increased */
- NOTE_ATTRIB = 0x0008 /* attributes changed */
- NOTE_LINK = 0x0010 /* link count changed */
- NOTE_RENAME = 0x0020 /* vnode was renamed */
- NOTE_REVOKE = 0x0040 /* vnode access was revoked */
+ 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
- NOTE_ALLEVENTS = NOTE_DELETE | NOTE_WRITE | NOTE_ATTRIB | NOTE_RENAME
+ 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