Overview of changes:
* Added experimental ruleset manager
Instead of manipulating queue over and over, handler can now
start a ruleset tied to a queue loader and add rules as functions
that always operate on freshly loaded queue. Once queue stops
yielding no more rules are executed, saving unnecessary round trips
with server.
To make this work with least possible amount of typing to use,
this module is stateful operation, but with some basic care it
should be safe and overall the ruleset approach should make it
easier to prevent conflicts such as when later, more inclusive rule
overrides former.
Overview of changes:
* Revamped packaging and handler API for Lua-correctness
Most of imapdomo now behaves more like proper Lua code and part of
this also rubs off to user, OTOH it only relates to one-time changes
it's balanced by some extra configuration freedoms.
* Added support for hooks
Handlers can now call dedicated external scripts prepared by user
in advance, under `.imapdomo/config/hooks`. The API is not fully
fleshed, though.
* Enabled lock-related debugging
Revamp packaging to achieve more correct Lua style
Several changes regarding packaging, namespacing and handler API:
* Utility function module is now called 'imapdomo', not 'common'.
* The module behaves as one, instead of being just a global-modifying
include.
* Lots of cleanups as advised by luacheck (local declarations,
removal of unused variables...)
* Handlers now have to access utility API via `require` and provide
accout configuration in new file mailboxes.lua, which has to return
table. Accessing mailboxes is via utility function. (This sounds
complicated but actually is not. Believe me! :))
Overview of changes:
* Fixed some grep calls to avoid ambiguities
* Update MKit to latest version
* Added few notes about performance and lock disabing
* Updated URLs after move from github
Where regular expression is read from a variable and -e argument is not
provided, the resulting call may end up being interpreted as grep
argument.
See also:
https://github.com/koalaman/shellcheck/issues/1342
Overview of changes:
* Added locking mechanism
We have to assume that filtering can take long, so if cron is used
to launch imapdomo and gap is too small, imapdomo instances could
run over each other, increasing the load even more.
Now imapdomo drops a lockfile by default, and silently gives up if
lockfile exists. This can be disabled by command line switch.
* Removed dead code
Action won't start if one is already running. This should prevent
overlapping actions.
It's possible to turn off locking to allow running imapdomo as service,
ie. locking will be taken care of by init system.
Overview of changes:
* imapdomo will now override imapfilter's certificate storage
Also added CLI option, but default value is
$IMAPDOMO_HOME/certificates
* Empty action will now throe usage error
... instead of crashing further down the line.
* Path in handler error message has been fixed
* Codebase maintenance
Overview of changes:
* Removed restriction to four valid actions
User can now define as many actions as they want by simply adding
handlers for them.
* Improved usage messages
* Added meaningful error messages
* Added arguments to show version
* Added 'last' branch to keep latest version
* Fixed and cleaned up packaging info
* Updated for Shellfu v0.10.*
* Codebase maintenance
Having just 4 valid actions (albeit they do form a meaningful workflow)
was rather historical limitation caused by author's negligence.
User should be able to define any actions they want by simply creating
handlers for them.
Later we might want to provide a guidance (template) for that, but
that's a TODO item.
Fix dependencies, use spaces instead of tabs in .spec file, rename
`imapdomo.spec` to `template.spec`, rename `imapdomo.install` to
`install`, remove unnecessary `override_dh_auto_install`, add URL to
.spec, update Summary, clean up.