xref: /plan9/sys/src/cmd/wikifs/wiki2text.c (revision 9a747e4fd48b9f4522c70c07e8f882a15030f964)
1*9a747e4fSDavid du Colombier #include <u.h>
2*9a747e4fSDavid du Colombier #include <libc.h>
3*9a747e4fSDavid du Colombier #include <bio.h>
4*9a747e4fSDavid du Colombier #include <String.h>
5*9a747e4fSDavid du Colombier #include <thread.h>
6*9a747e4fSDavid du Colombier #include "wiki.h"
7*9a747e4fSDavid du Colombier 
8*9a747e4fSDavid du Colombier char *wikidir = ".";
9*9a747e4fSDavid du Colombier 
10*9a747e4fSDavid du Colombier void
usage(void)11*9a747e4fSDavid du Colombier usage(void)
12*9a747e4fSDavid du Colombier {
13*9a747e4fSDavid du Colombier 	fprint(2, "usage: wiki2text [-d dir] wikifile\n");
14*9a747e4fSDavid du Colombier 	exits("usage");
15*9a747e4fSDavid du Colombier }
16*9a747e4fSDavid du Colombier 
17*9a747e4fSDavid du Colombier void
main(int argc,char ** argv)18*9a747e4fSDavid du Colombier main(int argc, char **argv)
19*9a747e4fSDavid du Colombier {
20*9a747e4fSDavid du Colombier 	int i;
21*9a747e4fSDavid du Colombier 	Biobuf *b;
22*9a747e4fSDavid du Colombier 	String *h;
23*9a747e4fSDavid du Colombier 	Whist *doc;
24*9a747e4fSDavid du Colombier 
25*9a747e4fSDavid du Colombier 	ARGBEGIN{
26*9a747e4fSDavid du Colombier 	default:
27*9a747e4fSDavid du Colombier 		usage();
28*9a747e4fSDavid du Colombier 	case 'd':
29*9a747e4fSDavid du Colombier 		wikidir = EARGF(usage());
30*9a747e4fSDavid du Colombier 		break;
31*9a747e4fSDavid du Colombier 	}ARGEND
32*9a747e4fSDavid du Colombier 
33*9a747e4fSDavid du Colombier 	if(argc != 1)
34*9a747e4fSDavid du Colombier 		usage();
35*9a747e4fSDavid du Colombier 
36*9a747e4fSDavid du Colombier 	if((b = Bopen(argv[0], OREAD)) == nil)
37*9a747e4fSDavid du Colombier 		sysfatal("Bopen: %r");
38*9a747e4fSDavid du Colombier 
39*9a747e4fSDavid du Colombier 	if((doc = Brdwhist(b)) == nil)
40*9a747e4fSDavid du Colombier 		sysfatal("Brdwtxt: %r");
41*9a747e4fSDavid du Colombier 
42*9a747e4fSDavid du Colombier 	h = nil;
43*9a747e4fSDavid du Colombier 	for(i=0; i<doc->ndoc; i++){
44*9a747e4fSDavid du Colombier 		print("__________________ %d ______________\n", i);
45*9a747e4fSDavid du Colombier 		if((h = pagetext(s_reset(h), doc->doc[i].wtxt, 1)) == nil)
46*9a747e4fSDavid du Colombier 			sysfatal("wiki2html: %r");
47*9a747e4fSDavid du Colombier 		write(1, s_to_c(h), s_len(h));
48*9a747e4fSDavid du Colombier 	}
49*9a747e4fSDavid du Colombier 	exits(0);
50*9a747e4fSDavid du Colombier }
51