I've continued to ponder the idea of reimplementing the console mail-client I wrote, lumail, using a more object-based codebase.
For one thing having loosely coupled code would allow testing things in isolation, which is clearly a good thing.
I've written some proof of concept code which will allow the following Lua to be evaluated:
-- Open the maildir. users = Maildir.new( "/home/skx/Maildir/.debian.user" ) -- Count the messages. print( "There are " .. users:count() .. " messages in the maildir " .. users:path() ) -- -- Now we want to get all the messages and output their paths. -- for k,v in ipairs( users:messages()) do -- -- Here we could do something like: -- -- if ( string.find( v:headers["subject"], "troll", 1, true ) ) then v:delete() end -- -- Instead play-nice and just show the path. print( k .. " -> " .. v:path() ) end
This is all a bit ugly, but I've butchered some code together that works, and tried to solicit feedback from lumail users.
I'd write more but I'm tired, and intending to drink whisky and have an early night. Today I mostly replaced pipes in my attic. (Is it "attic", or is it "loft"? I keep alternating!) Fingers crossed this will mean a dry kitchen in the morning.
Tags: lumail No comments