From 774f99bc21a5e813b33a057e2ddfb86adb363154 Mon Sep 17 00:00:00 2001 From: Axel Kittenberger Date: Fri, 10 Dec 2010 16:12:15 +0000 Subject: [PATCH] fixing fsevents --- fsevents.c | 13 +++++-------- lsyncd.lua | 9 +++++++++ tests/churn-rsync.lua | 2 +- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/fsevents.c b/fsevents.c index 840518a..43079a1 100644 --- a/fsevents.c +++ b/fsevents.c @@ -217,8 +217,11 @@ handle_event(lua_State *L, struct kfs_event *event, ssize_t mlen) break; case FSE_ARG_MODE : switch(atype) { - case FSE_CHOWN : case FSE_RENAME : + case FSE_CHOWN : + case FSE_CONTENT_MODIFIED : + case FSE_CREATE_FILE : + case FSE_CREATE_DIR : case FSE_DELETE : case FSE_STAT_CHANGED : isdir = arg->data.mode & S_IFDIR ? 1 : 0; @@ -239,23 +242,17 @@ handle_event(lua_State *L, struct kfs_event *event, ssize_t mlen) etype = "Attrib"; break; case FSE_CREATE_DIR : - etype = "Create"; - isdir = 1; - break; case FSE_CREATE_FILE : etype = "Create"; - isdir = 0; break; case FSE_DELETE : etype = "Delete"; - isdir = 0; break; case FSE_RENAME : etype = "Move"; break; case FSE_CONTENT_MODIFIED : etype = "Modify"; - isdir = 0; break; } @@ -276,7 +273,7 @@ handle_event(lua_State *L, struct kfs_event *event, ssize_t mlen) l_now(L); lua_pushstring(L, path); if (trg) { - lua_pushstring(L, path); + lua_pushstring(L, trg); } else { lua_pushnil(L); } diff --git a/lsyncd.lua b/lsyncd.lua index 1e63ddf..ca1c8dd 100644 --- a/lsyncd.lua +++ b/lsyncd.lua @@ -1904,7 +1904,16 @@ local Fsevents = (function() -- @param filename2 -- local function event(etype, isdir, time, path, path2) + + if isdir then + path = path .. '/' + if path2 then + path2 = path2 .. '/' + end + end + log("Fsevents",etype,",",isdir,",",time,",",path,",",path2) + for _, s in Syncs.iwalk() do repeat local root = s.source if not path:starts(root) then diff --git a/tests/churn-rsync.lua b/tests/churn-rsync.lua index cb1e168..a9bdf8e 100755 --- a/tests/churn-rsync.lua +++ b/tests/churn-rsync.lua @@ -11,7 +11,7 @@ local tdir, srcdir, trgdir = mktemps() churn(srcdir, 10) local logs = {} -logs = {"-log", "Delay" } +--logs = {"-log", "Delay", "-log", "Fsevents" } local pid = spawn("./lsyncd", "-nodaemon", "-delay", "5", "-rsync", srcdir, trgdir, unpack(logs))