plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

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 }