| /* |
| TO DO |
| |
| can get disposition info out of imap extended structure if needed |
| sizes in stat/ls ? |
| translate character sets in =? subjects |
| |
| fetch headers, bodies on demand |
| |
| cache headers, bodies on disk |
| |
| cache message information on disk across runs |
| |
| body.jpg |
| |
| */ |
| |
| #include "a.h" |
| |
| Imap *imap; |
| |
| void |
| usage(void) |
| { |
| fprint(2, "usage: mailfs [-DVtx] [-m mtpt] [-s srvname] [-r root] [-u user] server\n"); |
| threadexitsall("usage"); |
| } |
| |
| void |
| threadmain(int argc, char **argv) |
| { |
| char *server, *srvname, *root, *user; |
| int mode; |
| char *mtpt; |
| |
| srvname = "mail"; |
| root = ""; |
| mode = Unencrypted; |
| mtpt = nil; |
| user = nil; |
| ARGBEGIN{ |
| default: |
| usage(); |
| case 'D': |
| chatty9p++; |
| break; |
| case 'V': |
| chattyimap++; |
| break; |
| case 'm': |
| mtpt = EARGF(usage()); |
| break; |
| case 's': |
| srvname = EARGF(usage()); |
| break; |
| case 't': |
| mode = Tls; |
| break; |
| case 'u': |
| user = EARGF(usage()); |
| break; |
| case 'x': |
| mode = Cmd; |
| break; |
| case 'r': |
| root = EARGF(usage()); |
| break; |
| }ARGEND |
| |
| quotefmtinstall(); |
| fmtinstall('$', sxfmt); |
| |
| if(argc != 1) |
| usage(); |
| server = argv[0]; |
| |
| mailthreadinit(); |
| boxinit(); |
| fsinit0(); |
| |
| if((imap = imapconnect(server, mode, root, user)) == nil) |
| sysfatal("imapconnect: %r"); |
| threadpostmountsrv(&fs, srvname, mtpt, 0); |
| } |
| |