From fc817d7f39137801dfc8889910440d1bf1afb965 Mon Sep 17 00:00:00 2001 From: Chris Howey Date: Mon, 17 Oct 2011 12:06:53 -0700 Subject: [PATCH] Common event printer --- Makefile | 3 +++ fsnotify.go | 31 +++++++++++++++++++++++++++++++ fsnotify_bsd.go | 36 ------------------------------------ fsnotify_linux.go | 23 ----------------------- 4 files changed, 34 insertions(+), 59 deletions(-) create mode 100644 fsnotify.go diff --git a/Makefile b/Makefile index c6e89e8..9f3a8b8 100644 --- a/Makefile +++ b/Makefile @@ -2,6 +2,9 @@ include $(GOROOT)/src/Make.inc TARG=exp/fsnotify +GOFILES=\ + fsnotify.go + GOFILES_linux=\ fsnotify_linux.go\ diff --git a/fsnotify.go b/fsnotify.go new file mode 100644 index 0000000..f3e4321 --- /dev/null +++ b/fsnotify.go @@ -0,0 +1,31 @@ +package fsnotify + +import "fmt" + +// String formats the event e in the form +// "filename: DELETE|MODIFY|..." +func (e *FileEvent) String() string { + var events string = "" + + if e.IsDelete() { + events += "|" + "DELETE" + } + + if e.IsModify() { + events += "|" + "MODIFY" + } + + if e.IsAttribute() { + events += "|" + "ATTRIB" + } + + if e.IsRename() { + events += "|" + "RENAME" + } + + if len(events) > 0 { + events = events[1:] + } + + return fmt.Sprintf("%q: %s", e.Name, events) +} diff --git a/fsnotify_bsd.go b/fsnotify_bsd.go index 54e7fa9..f5afbdc 100644 --- a/fsnotify_bsd.go +++ b/fsnotify_bsd.go @@ -216,29 +216,6 @@ func (w *Watcher) readEvents() { } } -// String formats the event e in the form -// "filename: 0xEventMask = NOTE_EXTEND|NOTE_ATTRIB|..." -func (e *FileEvent) String() string { - var events string = "" - - m := e.mask - for _, b := range eventBits { - if m&b.Value != 0 { - m &^= b.Value - events += "|" + b.Name - } - } - - if m != 0 { - events += fmt.Sprintf("|%#x", m) - } - if len(events) > 0 { - events = " == " + events[1:] - } - - return fmt.Sprintf("%q: %#x%s", e.Name, e.mask, events) -} - const ( // Flags (from ) NOTE_DELETE = 0x0001 /* vnode was removed */ @@ -255,16 +232,3 @@ const ( // Block for 100 ms on each call to kevent keventWaitTime = 100e6 ) - -var eventBits = []struct { - Value uint32 - Name string -}{ - {NOTE_DELETE, "NOTE_DELETE"}, - {NOTE_WRITE, "NOTE_WRITE"}, - {NOTE_EXTEND, "NOTE_EXTEND"}, - {NOTE_ATTRIB, "NOTE_ATTRIB"}, - {NOTE_LINK, "NOTE_LINK"}, - {NOTE_RENAME, "NOTE_RENAME"}, - {NOTE_REVOKE, "NOTE_REVOKE"}, -} diff --git a/fsnotify_linux.go b/fsnotify_linux.go index abf84c2..ffb1390 100644 --- a/fsnotify_linux.go +++ b/fsnotify_linux.go @@ -214,29 +214,6 @@ func (w *Watcher) readEvents() { } } -// String formats the event e in the form -// "filename: 0xEventMask = IN_ACCESS|IN_ATTRIB_|..." -func (e *FileEvent) String() string { - var events string = "" - - m := e.mask - for _, b := range eventBits { - if m&b.Value != 0 { - m &^= b.Value - events += "|" + b.Name - } - } - - if m != 0 { - events += fmt.Sprintf("|%#x", m) - } - if len(events) > 0 { - events = " == " + events[1:] - } - - return fmt.Sprintf("%q: %#x%s", e.Name, e.mask, events) -} - const ( // Options for inotify_init() are not exported // IN_CLOEXEC uint32 = syscall.IN_CLOEXEC -- 2.50.1