diff options
Diffstat (limited to '.config/imapfilter/imapfilter-common.lua')
| -rwxr-xr-x | .config/imapfilter/imapfilter-common.lua | 30 |
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 |
