summaryrefslogtreecommitdiff
path: root/.config/imapfilter/imapfilter-common.lua
diff options
context:
space:
mode:
Diffstat (limited to '.config/imapfilter/imapfilter-common.lua')
-rwxr-xr-x.config/imapfilter/imapfilter-common.lua30
1 files changed, 30 insertions, 0 deletions
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