*** This is mboxfs, a mailbox filesystem translator for the Hurd.

1. What is it for?

Mboxfs is meant to help people sorting emails. It's based on the Mutt
user-agent (see mutt/README). Mboxfs parses mailboxes in order to create a
directory hierarchy representing the contents of the mailbox. It's possible to:

  - sort emails per recipient, sender, date or subject (see the "from",
    "to", "date", "threads" directories);
  - create one of those subdirectories `on the fly' by cd'ing to it;
  - view attachments directly (in the "attach" directories).

Below is an example of what it actually looks like.

ludo@hurd:~/mailbox/date/Nov2001/to/help-hurd@gnu.org$ ll
total 0
lr--r--r--  58888 ludo     users          37 Nov  8  2001 00000.mail -> ../../from/Uma Devi Dasari/00000.mail
lr--r--r--  58888 ludo     users          37 Nov 10  2001 00001.mail -> ../../from/Chris Hornbaker/00000.mail
lr--r--r--  58888 ludo     users          36 Nov 14  2001 00002.mail -> ../../from/Moritz Schulte/00000.mail
lr--r--r--  58888 ludo     users          39 Nov 14  2001 00003.mail -> ../../from/Wolfgang J?hrling/00000.mail
lr--r--r--  58888 ludo     users          38 Nov 22 13:54 00004.mail -> ../../from/ranjit bhaskaran/00000.mail
lr--r--r--  58888 ludo     users          40 Nov 24 17:26 00005.mail -> ../../from/Joao Pedro Almeida/00000.mail
lr--r--r--  58888 ludo     users          28 Nov 26 01:20 00006.mail -> ../../from/Gloria/00000.mail
lr--r--r--  58888 ludo     users          34 Nov 26 03:23 00007.mail -> ../../from/Steven Y. Ko/00000.mail
lr--r--r--  58888 ludo     users          36 Nov 28 06:22 00008.mail -> ../../from/ashwini dahiya/00000.mail
lr--r--r--  58888 ludo     users          39 Nov 30 03:47 00009.mail -> ../../from/joaco@bocazas.com/00000.mail
lr--r--r--  58888 ludo     users          45 Nov 30 16:14 00010.mail -> ../../from/Leonardo Pino Werlinger/00000.mail

ludo@hurd:~/mailbox/date/Nov2001/to/help-hurd@gnu.org$ cd from
ludo@hurd:~/mailbox/date/Nov2001/to/help-hurd@gnu.org/from$ ls
Chris Hornbaker/          Moritz Schulte/     ashwini dahiya/
Gloria/                   Steven Y. Ko/       joaco@bocazas.com/
Joao Pedro Almeida/       Uma Devi Dasari/    ranjit bhaskaran/
Leonardo Pino Werlinger/  Wolfgang J?hrling/

ludo@hurd:~/mailbox/date/Nov2001/to/help-hurd@gnu.org/from$ cd Moritz\ Schulte/
ludo@hurd:~/mailbox/date/Nov2001/to/help-hurd@gnu.org/from/Moritz Schulte$ ls
00000.mail

ludo@hurd:~/mailbox/date/Nov2001/to/help-hurd@gnu.org/from/Moritz Schulte$ cd threads
ludo@hurd:~/mailbox/date/Nov2001/to/help-hurd@gnu.org/from/Moritz Schulte/threads$ ls
Where to start?/


2. Design note

One might find the code quite weird. In particular, the NODE_INFO macro in
mboxfs.c makes it harder to read. The idea behind it was to isolate the
fs-specific stuff from the regular netfs callbacks (netfs.c) and also from
the implementation of generic filesystem operations (fsutils.c).

Therefore, struct netnode has been designed in order not to hold any fs-
specific code. The structure hierarchy is as follows:
  struct node holds information for libnetfs and also holds
    struct netnode that holds information for fsutils.c which also holds
      struct mboxfs_info that holds information for mboxfs.

The ultimate goal could be to have a small generic fs management library
for netfs translators which would include useful generic functions such
as the ones in fsutils.c .


<ludo@chbouib.org>                 http://ludo.humanoidz.org/hurd/index.html
vim:wrap:
