19a747e4fSDavid du Colombier #include <u.h> 29a747e4fSDavid du Colombier #include <libc.h> 39a747e4fSDavid du Colombier #include <bio.h> 49a747e4fSDavid du Colombier #include <String.h> 59a747e4fSDavid du Colombier #include <thread.h> 69a747e4fSDavid du Colombier #include "wiki.h" 79a747e4fSDavid du Colombier 89a747e4fSDavid du Colombier char *wikidir; 99a747e4fSDavid du Colombier 109a747e4fSDavid du Colombier void usage(void)119a747e4fSDavid du Colombierusage(void) 129a747e4fSDavid du Colombier { 13*ed397113SDavid du Colombier fprint(2, "usage: wiki2html [-hoDP ] [-d dir] wikifile\n"); 149a747e4fSDavid du Colombier exits("usage"); 159a747e4fSDavid du Colombier } 169a747e4fSDavid du Colombier 179a747e4fSDavid du Colombier void main(int argc,char ** argv)189a747e4fSDavid du Colombiermain(int argc, char **argv) 199a747e4fSDavid du Colombier { 209a747e4fSDavid du Colombier int t; 21*ed397113SDavid du Colombier int parse; 229a747e4fSDavid du Colombier String *h; 239a747e4fSDavid du Colombier Whist *doc; 249a747e4fSDavid du Colombier 259a747e4fSDavid du Colombier rfork(RFNAMEG); 269a747e4fSDavid du Colombier 279a747e4fSDavid du Colombier t = Tpage; 289a747e4fSDavid du Colombier ARGBEGIN{ 299a747e4fSDavid du Colombier default: 309a747e4fSDavid du Colombier usage(); 319a747e4fSDavid du Colombier case 'd': 329a747e4fSDavid du Colombier wikidir = EARGF(usage()); 339a747e4fSDavid du Colombier break; 349a747e4fSDavid du Colombier case 'h': 359a747e4fSDavid du Colombier t = Thistory; 369a747e4fSDavid du Colombier break; 379a747e4fSDavid du Colombier case 'o': 389a747e4fSDavid du Colombier t = Toldpage; 399a747e4fSDavid du Colombier break; 409a747e4fSDavid du Colombier case 'D': 419a747e4fSDavid du Colombier t = Tdiff; 429a747e4fSDavid du Colombier break; 43*ed397113SDavid du Colombier case 'P': 44*ed397113SDavid du Colombier parse = 1; 459a747e4fSDavid du Colombier }ARGEND 469a747e4fSDavid du Colombier 479a747e4fSDavid du Colombier if(argc != 1) 489a747e4fSDavid du Colombier usage(); 499a747e4fSDavid du Colombier 509a747e4fSDavid du Colombier if(t == Thistory || t==Tdiff) 519a747e4fSDavid du Colombier doc = gethistory(atoi(argv[0])); 529a747e4fSDavid du Colombier else 539a747e4fSDavid du Colombier doc = getcurrent(atoi(argv[0])); 549a747e4fSDavid du Colombier 559a747e4fSDavid du Colombier if(doc == nil) 569a747e4fSDavid du Colombier sysfatal("doc: %r"); 579a747e4fSDavid du Colombier 58*ed397113SDavid du Colombier if(parse){ 59*ed397113SDavid du Colombier printpage(doc->doc->wtxt); 60*ed397113SDavid du Colombier exits(0); 61*ed397113SDavid du Colombier } 629a747e4fSDavid du Colombier if((h = tohtml(doc, doc->doc+doc->ndoc-1, t)) == nil) 639a747e4fSDavid du Colombier sysfatal("wiki2html: %r"); 649a747e4fSDavid du Colombier 659a747e4fSDavid du Colombier write(1, s_to_c(h), s_len(h)); 669a747e4fSDavid du Colombier exits(0); 679a747e4fSDavid du Colombier } 68