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