mu/perl/README.md

32 lines
1.4 KiB
Markdown
Raw Normal View History

# 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.