*** 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 . http://ludo.humanoidz.org/hurd/index.html vim:wrap: