diff options
Diffstat (limited to 'acme/wiki/src/main.c')
-rw-r--r-- | acme/wiki/src/main.c | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/acme/wiki/src/main.c b/acme/wiki/src/main.c new file mode 100644 index 000000000..f76cafff9 --- /dev/null +++ b/acme/wiki/src/main.c @@ -0,0 +1,60 @@ +#include "awiki.h" + +int debug; +int mapfd; +char *email; +char *dir; + +void +usage(void) +{ + fprint(2, "usage: Wiki [-e email] [dir]\n"); + exits("usage"); +} + +void +threadmain(int argc, char **argv) +{ + char *s; + Dir *d; + + rfork(RFNAMEG); + ARGBEGIN{ + case 'D': + debug++; + break; + case 'e': + email = EARGF(usage()); + break; + default: + usage(); + break; + }ARGEND + + if(argc > 1) + usage(); + if(argc == 1) + dir = argv[0]; + else + dir = "/mnt/wiki"; + + if(chdir(dir) < 0){ + fprint(2, "chdir(%s) fails: %r\n", dir); + threadexitsall(nil); + } + + if((mapfd = open("map", ORDWR)) < 0){ + fprint(2, "open(map): %r\n"); + threadexitsall(nil); + } + + if((d = dirstat("1")) == nil){ + fprint(2, "dirstat(%s/1) fails: %r\n", dir); + threadexitsall(nil); + } + s = emalloc(strlen(d->name)+2); + strcpy(s, d->name); + strcat(s, "/"); + wikiopen(s, nil); + threadexits(nil); +} |