diff --git a/README b/README index 4fff7bd..3af7492 100644 --- a/README +++ b/README @@ -220,8 +220,8 @@ vicious.widgets.mboxc vicious.widgets.mdir - provides a number of new and unread messages in a Maildir - structure - - takes the full path to the Maildir structure as an argument + structures/directories + - takes a table with full paths to Maildir structures as an argument - returns 1st value as the count of new messages and 2nd as the count of "old" messages lacking the Seen flag diff --git a/mdir.lua b/mdir.lua index 1d8a444..f0d9b94 100644 --- a/mdir.lua +++ b/mdir.lua @@ -15,19 +15,21 @@ module("vicious.mdir") -- {{{ Maildir widget type -local function worker(format, mdir) +local function worker(format, warg) -- Initialise counters local count = { new = 0, cur = 0 } - -- Recursively find new messages - local f = io.popen("find "..mdir.." -type f -wholename '*/new/*'") - for line in f:lines() do count.new = count.new + 1 end - f:close() + for i=1, #warg do + -- Recursively find new messages + local f = io.popen("find "..warg[i].." -type f -wholename '*/new/*'") + for line in f:lines() do count.new = count.new + 1 end + f:close() - -- Recursively find "old" messages lacking the Seen flag - local f = io.popen("find "..mdir.." -type f -regex '.*/cur/.*2,[^S]*$'") - for line in f:lines() do count.cur = count.cur + 1 end - f:close() + -- Recursively find "old" messages lacking the Seen flag + local f = io.popen("find "..warg[i].." -type f -regex '.*/cur/.*2,[^S]*$'") + for line in f:lines() do count.cur = count.cur + 1 end + f:close() + end return {count.new, count.cur} end