mirror of
https://github.com/djcb/mu.git
synced 2024-06-30 08:01:07 +02:00
32 lines
1.4 KiB
Markdown
32 lines
1.4 KiB
Markdown
# mup #
|
|
|
|
mup is a perl interface to [mu](http://www.djcbsoftware.nl/code/mu/)
|
|
([GitHub](https://github.com/djcb/mu)), a Maildir indexing and
|
|
search system that also implements the core functionality needed
|
|
by pretty much any MUA.
|
|
|
|
mup replicates the API described in the
|
|
[mu-server(1)](http://manpages.ubuntu.com/manpages/precise/man1/mu-server.1.html) man page in a pleasingly Perly style. It is licensed under the
|
|
[ISC license](http://en.wikipedia.org/ISC_licnse), a simplified
|
|
variant of the [BSD license](http://en.wikipedia.org/BSD_licenses).
|
|
|
|
mup works in the same way the elisp code in mu4e does: it forks
|
|
a `mu-server` process and communicates with it. I use the
|
|
[Data::SExpression](http://search.cpan.org/~nelhage/Data-SExpression-0.41/lib/Data/SExpression.pm) CPAN module to deal with `mu-server`'s LISPy result syntax,
|
|
which we transform into the obvious hashrefian results our callers crave
|
|
(they've got electrolytes).
|
|
|
|
## Tests ##
|
|
|
|
I use standard perl testing stuff (`Test::More`). The tests all
|
|
operate on a temporary Maildir/mu index created by `t/lib.pm`. If you
|
|
are interested in hacking on or understanding the tests you should
|
|
first look at `t/lib.pm` to see how the temporary setup is created and
|
|
torn down. All tests should have
|
|
|
|
use t::lib;
|
|
|
|
in them somewhere near the top. This is all that is necessary to make
|
|
sure the code in the test does not e.g. hose down your actual
|
|
~/Maildir and/or ~/.mu.
|