1 #include "awiki.h"
2
3 int debug;
4 int mapfd;
5 char *email;
6 char *dir;
7
8 void
usage(void)9 usage(void)
10 {
11 fprint(2, "usage: Wiki [-e email] [dir]\n");
12 exits("usage");
13 }
14
15 void
threadmain(int argc,char ** argv)16 threadmain(int argc, char **argv)
17 {
18 char *s;
19 Dir *d;
20
21 rfork(RFNAMEG);
22 ARGBEGIN{
23 case 'D':
24 debug++;
25 break;
26 case 'e':
27 email = EARGF(usage());
28 break;
29 default:
30 usage();
31 break;
32 }ARGEND
33
34 if(argc > 1)
35 usage();
36 if(argc == 1)
37 dir = argv[0];
38 else
39 dir = "/mnt/wiki";
40
41 if(chdir(dir) < 0){
42 fprint(2, "chdir(%s) fails: %r\n", dir);
43 threadexitsall(nil);
44 }
45
46 if((mapfd = open("map", ORDWR)) < 0){
47 fprint(2, "open(map): %r\n");
48 threadexitsall(nil);
49 }
50
51 if((d = dirstat("1")) == nil){
52 fprint(2, "dirstat(%s/1) fails: %r\n", dir);
53 threadexitsall(nil);
54 }
55 s = emalloc(strlen(d->name)+2);
56 strcpy(s, d->name);
57 strcat(s, "/");
58 wikiopen(s, nil);
59 threadexits(nil);
60 }
61