Blob


1 /*
2 TO DO
4 can get disposition info out of imap extended structure if needed
5 sizes in stat/ls ?
6 translate character sets in =? subjects
8 fetch headers, bodies on demand
10 cache headers, bodies on disk
12 cache message information on disk across runs
14 body.jpg
16 */
18 #include "a.h"
20 Imap *imap;
22 void
23 usage(void)
24 {
25 fprint(2, "usage: mailfs [-DVtx] [-m mtpt] [-s srvname] [-r root] server\n");
26 threadexitsall("usage");
27 }
29 void
30 threadmain(int argc, char **argv)
31 {
32 char *server, *srvname, *root;
33 int mode;
34 char *mtpt;
36 srvname = "mail";
37 root = "";
38 mode = Unencrypted;
39 mtpt = nil;
40 ARGBEGIN{
41 default:
42 usage();
43 case 'D':
44 chatty9p++;
45 break;
46 case 'V':
47 chattyimap++;
48 break;
49 case 'm':
50 mtpt = EARGF(usage());
51 break;
52 case 's':
53 srvname = EARGF(usage());
54 break;
55 case 't':
56 mode = Tls;
57 break;
58 case 'x':
59 mode = Cmd;
60 break;
61 case 'r':
62 root = EARGF(usage());
63 break;
64 }ARGEND
66 quotefmtinstall();
67 fmtinstall('$', sxfmt);
69 if(argc != 1)
70 usage();
71 server = argv[0];
73 mailthreadinit();
74 boxinit();
75 fsinit0();
77 if((imap = imapconnect(server, mode, root)) == nil)
78 sysfatal("imapconnect: %r");
79 threadpostmountsrv(&fs, srvname, mtpt, 0);
80 }