From e5cb4057fda66962ccb710b460a363bd8aab7414 Mon Sep 17 00:00:00 2001 From: Paul Iannetta Date: Thu, 21 Apr 2022 23:39:28 +0200 Subject: add offlineimap & imapfilter confs --- .config/imapfilter/imapfilter-common.lua | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100755 .config/imapfilter/imapfilter-common.lua (limited to '.config/imapfilter/imapfilter-common.lua') diff --git a/.config/imapfilter/imapfilter-common.lua b/.config/imapfilter/imapfilter-common.lua new file mode 100755 index 0000000..8460bb0 --- /dev/null +++ b/.config/imapfilter/imapfilter-common.lua @@ -0,0 +1,30 @@ +-- Utility function to get IMAP username from pass +function get_imap_username(account) + local str = io.popen('pass institutions/' .. account .. '/id'):read() + return str; +end + +-- Utility function to get IMAP password from pass +function get_imap_password(account) + local str = io.popen('pass institutions/' .. account .. '/pass'):read() + return str; +end + +-- https://stackoverflow.com/a/11402486 +function case_insensitive_pattern(pattern) + + -- find an optional '%' (group 1) followed by any character (group 2) + local p = pattern:gsub("(%%?)(.)", function(percent, letter) + + if percent ~= "" or not letter:match("%a") then + -- if the '%' matched, or `letter` is not a letter, return "as is" + return percent .. letter + else + -- else, return a case-insensitive character class of the matched letter + return string.format("[%s%s]", letter:lower(), letter:upper()) + end + + end) + + return p +end -- cgit v1.2.3-54-g00ecf