lua: Fix formatting with lua-format

This commit is contained in:
Marty Oehme 2020-11-06 15:03:33 +01:00
parent b57db544b7
commit 0e34af1992
Signed by: Marty
GPG key ID: B7538B8F50A1C800
13 changed files with 3867 additions and 3385 deletions

View file

@ -1,13 +1,15 @@
local accounts = {}
local status, gmailuser = pipe_from('gpg2 --decrypt --no-tty --quiet --no-verbose --for-your-eyes-only --pinentry-mode ask ~/.local/share/pass/misc/aerc-gmail-app-password.gpg | grep username | cut -d: -f2')
local status, gmailpass = pipe_from('gpg2 --decrypt --no-tty --quiet --no-verbose --for-your-eyes-only --pinentry-mode ask ~/.local/share/pass/misc/aerc-gmail-app-password.gpg | head -n1')
local status, gmailuser = pipe_from(
'gpg2 --decrypt --no-tty --quiet --no-verbose --for-your-eyes-only --pinentry-mode ask ~/.local/share/pass/misc/aerc-gmail-app-password.gpg | grep username | cut -d: -f2')
local status, gmailpass = pipe_from(
'gpg2 --decrypt --no-tty --quiet --no-verbose --for-your-eyes-only --pinentry-mode ask ~/.local/share/pass/misc/aerc-gmail-app-password.gpg | head -n1')
-- Setup an imap account called gmail
accounts.gmail = IMAP {
server = "imap.gmail.com",
username = gmailuser,
password = gmailpass,
ssl = "auto"
server = "imap.gmail.com",
username = gmailuser,
password = gmailpass,
ssl = "auto"
}
return accounts

View file

@ -14,70 +14,73 @@ options.timeout = 120
-- whether to enter IDLE mode and conintuously check
-- for new incoming mail to filter
CONTINUOUS=false
CONTINUOUS = false
-- time to wait for next synchronization
-- only used in case server does not support IDLE mode
UPDATE_TIME=120
UPDATE_TIME = 120
-- implement simple wait function in case server does not support IDLE mode
function sleep(n)
os.execute("sleep " .. tonumber(n))
end
function sleep(n) os.execute("sleep " .. tonumber(n)) end
-- will set filters to be grabbed from XDG-compliant filter directory
-- can be overridden with env var IMAPFILTER_FILTERDIR
function getConfigDir()
-- -- set directory for imapfilter files
local configdir
if os.getenv("IMAPFILTER_CONFIGDIR") then
configdir=os.getenv("IMAPFILTER_CONFIGDIR")
elseif os.getenv("XDG_CONFIG_HOME") then
configdir=os.getenv("XDG_CONFIG_HOME") .. "/imapfilter"
else
configdir=os.getenv("HOME") .. "/.config/imapfilter"
end
return configdir
-- -- set directory for imapfilter files
local configdir
if os.getenv("IMAPFILTER_CONFIGDIR") then
configdir = os.getenv("IMAPFILTER_CONFIGDIR")
elseif os.getenv("XDG_CONFIG_HOME") then
configdir = os.getenv("XDG_CONFIG_HOME") .. "/imapfilter"
else
configdir = os.getenv("HOME") .. "/.config/imapfilter"
end
return configdir
end
-- will set filters to be grabbed from XDG-compliant filter directory
-- can be overridden with env var IMAPFILTER_FILTERDIR
function getFilterDir()
-- -- set directory for imapfilter files
local imapfilterdir
if os.getenv("IMAPFILTER_FILTERDIR") then
imapfilterdir=os.getenv("IMAPFILTER_FILTERDIR")
else
imapfilterdir=configDir .. "/filters"
end
return imapfilterdir
-- -- set directory for imapfilter files
local imapfilterdir
if os.getenv("IMAPFILTER_FILTERDIR") then
imapfilterdir = os.getenv("IMAPFILTER_FILTERDIR")
else
imapfilterdir = configDir .. "/filters"
end
return imapfilterdir
end
-- dirlist, from https://stackoverflow.com/a/25266573
function applyFilters(dir)
local p = io.popen('find "'..dir..'" -type f -name "*.lua"') --Open directory look for files, save data in p. By giving '-type f' as parameter, it returns all files.
for file in p:lines() do --Loop through all files
loadfile(file)()
end
local p = io.popen('find "' .. dir .. '" -type f -name "*.lua"') -- Open directory look for files, save data in p. By giving '-type f' as parameter, it returns all files.
for file in p:lines() do -- Loop through all files
loadfile(file)()
end
end
-- create global variable containing the configuration files
configDir=getConfigDir()
assert(configDir, "No configuration directory found. Ensure " .. os.getenv("HOME") .. "/.config/imapfilter exists.")
configDir = getConfigDir()
assert(configDir,
"No configuration directory found. Ensure " .. os.getenv("HOME") ..
"/.config/imapfilter exists.")
-- create global variable containing account access
accounts = loadfile(configDir .. "/accounts.lua")()
assert(accounts, "No accounts configured. Ensure accounts.lua exists and returns a table of accounts.")
assert(accounts,
"No accounts configured. Ensure accounts.lua exists and returns a table of accounts.")
-- immediately act on the filters once
applyFilters(getFilterDir())
-- continuously watch for mail if needed
while CONTINUOUS==true do
local has_idle=accounts.gmail['Inbox']:enter_idle()
applyFilters(getFilterDir())
while CONTINUOUS == true do
local has_idle = accounts.gmail['Inbox']:enter_idle()
applyFilters(getFilterDir())
if has_idle == false then
print("Server does not support idle, application will be polling again in " .. UPDATE_TIME .. "minutes.")
sleep(UPDATE_TIME)
end
if has_idle == false then
print(
"Server does not support idle, application will be polling again in " ..
UPDATE_TIME .. "minutes.")
sleep(UPDATE_TIME)
end
end

View file

@ -1,43 +1,40 @@
function sendToFolder(folderFrom, folderTo, senders)
local messages = folderFrom:select_all()
for _, sender in pairs(senders) do
local filtered=messages:contain_from(sender)
filtered:mark_seen()
filtered:move_messages(folderTo)
end
local messages = folderFrom:select_all()
for _, sender in pairs(senders) do
local filtered = messages:contain_from(sender)
filtered:mark_seen()
filtered:move_messages(folderTo)
end
end
-- will set filters to be grabbed from XDG-compliant filter directory
-- can be overridden with env var IMAPFILTER_ROLLUPFILE
function getRollupFile(fname)
local f
local fname=fname or "rollup.txt"
if os.getenv("IMAPFILTER_ROLLUPFILE") then
f=os.getenv("IMAPFILTER_ROLLUPFILE")
elseif os.getenv("XDG_DATA_HOME") then
f=os.getenv("XDG_DATA_HOME") .. "/imapfilter/" .. fname
else
f=os.getenv("HOME") .. "/.local/share/imapfilter/" .. fname
end
return f
local f
local fname = fname or "rollup.txt"
if os.getenv("IMAPFILTER_ROLLUPFILE") then
f = os.getenv("IMAPFILTER_ROLLUPFILE")
elseif os.getenv("XDG_DATA_HOME") then
f = os.getenv("XDG_DATA_HOME") .. "/imapfilter/" .. fname
else
f = os.getenv("HOME") .. "/.local/share/imapfilter/" .. fname
end
return f
end
function getSenderList(rollupfile)
local rollupSenders={}
local rollupSenders = {}
local file = io.open(rollupfile)
if file then
for line in file:lines() do
table.insert(rollupSenders, line)
local file = io.open(rollupfile)
if file then
for line in file:lines() do table.insert(rollupSenders, line) end
else
print(
"ERROR: rollup did not find rollup.txt file containing mail addresses at " ..
rollupfile or "")
end
else
print("ERROR: rollup did not find rollup.txt file containing mail addresses at " .. rollupfile or "" )
end
return rollupSenders
return rollupSenders
end
sendToFolder (
accounts.gmail["Inbox"],
accounts.gmail["Dump"],
getSenderList(getRollupFile())
)
sendToFolder(accounts.gmail["Inbox"], accounts.gmail["Dump"],
getSenderList(getRollupFile()))