1
0
Fork 0

Add timestamp and status to Event type

This commit is contained in:
Aaron Lindsay 2013-02-13 07:31:10 -05:00
parent 5d3cd40195
commit 6975ef035c
2 changed files with 26 additions and 3 deletions

View File

@ -1,5 +1,10 @@
package main
import (
"time"
)
//event type
type EventType uint32
const (
@ -7,10 +12,24 @@ const (
DELETE
)
//event status
type EventStatus uint32
const (
NOTICED = 1 << iota //watcher.go has been notified that a file changed
COPIED_TO_TMP //temporary version saved off
HASHED //hash taken of tmp file
CACHED //tmp file renamed to its hash
UPLOADED //tmp file has been successfully uploaded to storage
ON_SERVER //server has been successfully notified of event
)
type Event struct {
Type EventType
Path string
Hash string
Type EventType
Status EventStatus
Path string
Hash string
Timestamp time.Time
}
func (e Event) IsUpdate() bool {

View File

@ -4,6 +4,7 @@ import (
"github.com/howeyc/fsnotify"
"os"
"path/filepath"
"time"
)
func StartWatching(watchDir string, fileUpdates chan *Event) {
@ -45,7 +46,10 @@ func StartWatching(watchDir string, fileUpdates chan *Event) {
panic("Unknown fsnotify event type")
}
event.Status = NOTICED
event.Path = ev.Name
event.Timestamp = time.Now()
if event.IsUpdate() {
event.Hash, err = HashFile(ev.Name)
if err != nil {