xref: /plan9/sys/src/cmd/htmlfmt/main.c (revision 9a747e4fd48b9f4522c70c07e8f882a15030f964)
1 #include <u.h>
2 #include <libc.h>
3 #include <bio.h>
4 #include <draw.h>
5 #include <html.h>
6 #include "dat.h"
7 
8 char *url = "";
9 int aflag;
10 int width = 70;
11 
12 void
13 usage(void)
14 {
15 	fprint(2, "usage: htmlfmt [-u URL] [-a] [-l length] [file ...]\n");
16 	exits("usage");
17 }
18 
19 void
20 main(int argc, char *argv[])
21 {
22 	int i, fd;
23 	char *err, *file;
24 	char errbuf[ERRMAX];
25 
26 	ARGBEGIN{
27 	case 'a':
28 		aflag++;
29 		break;
30 	case 'l': case 'w':
31 		err = ARGF();
32 		if(err == nil)
33 			usage();
34 		width = atoi(err);
35 		if(width <= 0)
36 			usage();
37 		break;
38 	case 'u':
39 		url = ARGF();
40 		if(url == nil)
41 			usage();
42 		aflag++;
43 		break;
44 	default:
45 		usage();
46 	}ARGEND
47 
48 	err = nil;
49 	file = "<stdin>";
50 	if(argc == 0)
51 		err = loadhtml(0);
52 	else
53 		for(i=0; err==nil && i<argc; i++){
54 			file = argv[i];
55 			fd = open(file, OREAD);
56 			if(fd < 0){
57 				errstr(errbuf, sizeof errbuf);
58 				err = errbuf;
59 				break;
60 			}
61 			err = loadhtml(fd);
62 			close(fd);
63 			if(err)
64 				break;
65 		}
66 	if(err)
67 		fprint(2, "htmlfmt: processing %s: %s\n", file, err);
68 	exits(err);
69 }
70