]> git.lizzy.rs Git - plan9front.git/blob - sys/src/cmd/htmlfmt/main.c
merge
[plan9front.git] / sys / src / cmd / htmlfmt / main.c
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 int defcharset;
12
13 void
14 usage(void)
15 {
16         fprint(2, "usage: htmlfmt [-c charset] [-u URL] [-a] [-l length] [file ...]\n");
17         exits("usage");
18 }
19
20 void
21 main(int argc, char *argv[])
22 {
23         int i, fd;
24         char *p, *err, *file;
25         char errbuf[ERRMAX];
26
27         ARGBEGIN{
28         case 'a':
29                 aflag++;
30                 break;
31         case 'c':
32                 p = smprint("<meta charset=\"%s\">", EARGF(usage()));
33                 defcharset = charset(p);
34                 free(p);
35                 break;
36         case 'l': case 'w':
37                 err = EARGF(usage());
38                 width = atoi(err);
39                 if(width <= 0)
40                         usage();
41                 break;
42         case 'u':
43                 url = EARGF(usage());
44                 aflag++;
45                 break;
46         default:
47                 usage();
48         }ARGEND
49
50         err = nil;
51         file = "<stdin>";
52         if(argc == 0)
53                 err = loadhtml(0);
54         else
55                 for(i=0; err==nil && i<argc; i++){
56                         file = argv[i];
57                         fd = open(file, OREAD);
58                         if(fd < 0){
59                                 errstr(errbuf, sizeof errbuf);
60                                 err = errbuf;
61                                 break;
62                         }
63                         err = loadhtml(fd);
64                         close(fd);
65                         if(err)
66                                 break;
67                 }
68         if(err)
69                 fprint(2, "htmlfmt: processing %s: %s\n", file, err);
70         exits(err);
71 }