xref: /plan9/sys/lib/man/mkhtmlindex (revision 7dd7cddf99dd7472612f1413b4da293630e6b1bc)
1*7dd7cddfSDavid du Colombier#!/bin/rc
2*7dd7cddfSDavid du Colombierbuiltin cd $1
3*7dd7cddfSDavid du Colombierecho '<HEAD>'
4*7dd7cddfSDavid du Colombierecho '<TITLE>plan 9 man section '$1'</TITLE>'
5*7dd7cddfSDavid du Colombierecho '</HEAD>'
6*7dd7cddfSDavid du Colombierecho '<BODY>'
7*7dd7cddfSDavid du Colombierecho '<B>[<A HREF="/sys/man/index.html">manual index</A>]</B>'
8*7dd7cddfSDavid du Colombierecho -n '<H2>Plan 9 from Bell Labs - Section '$1' - '
9*7dd7cddfSDavid du Colombierswitch($1){
10*7dd7cddfSDavid du Colombiercase 1
11*7dd7cddfSDavid du Colombier	echo -n Commands
12*7dd7cddfSDavid du Colombiercase 2
13*7dd7cddfSDavid du Colombier	echo -n System and Library Calls
14*7dd7cddfSDavid du Colombiercase 3
15*7dd7cddfSDavid du Colombier	echo -n Devices
16*7dd7cddfSDavid du Colombiercase 4
17*7dd7cddfSDavid du Colombier	echo -n File Servers
18*7dd7cddfSDavid du Colombiercase 5
19*7dd7cddfSDavid du Colombier	echo -n Plan 9 File Protocol, 9P
20*7dd7cddfSDavid du Colombiercase 6
21*7dd7cddfSDavid du Colombier	echo -n File Formats, Misc
22*7dd7cddfSDavid du Colombiercase 7
23*7dd7cddfSDavid du Colombier	echo -n Databases
24*7dd7cddfSDavid du Colombiercase 8
25*7dd7cddfSDavid du Colombier	echo -n System Administration
26*7dd7cddfSDavid du Colombier}
27*7dd7cddfSDavid du Colombierecho '</H2>'
28*7dd7cddfSDavid du Colombierecho '<HR>'
29*7dd7cddfSDavid du Colombierecho '<DL>'
30*7dd7cddfSDavid du Colombierfor (i in [a-z0-9:]*) {
31*7dd7cddfSDavid du Colombier	switch($1/$i){
32*7dd7cddfSDavid du Colombier	case 1/ap 1/aviation 1/distill 1/dup 1/games 1/lml 1/noweb 1/pac
33*7dd7cddfSDavid du Colombier	case 2/button 2/fmenu 2/ftree
34*7dd7cddfSDavid du Colombier	case 6/noweb
35*7dd7cddfSDavid du Colombier	case 7/audio 7/chdb 7/music 7/road
36*7dd7cddfSDavid du Colombier		;
37*7dd7cddfSDavid du Colombier 	case *
38*7dd7cddfSDavid du Colombier		echo '<DT><A HREF="/magic/man2html/'$1/$i'">'$i'</A>'
39*7dd7cddfSDavid du Colombier		awk '
40*7dd7cddfSDavid du Colombier		BEGIN { syms = ""; indesc = 0; desc = ""; }
41*7dd7cddfSDavid du Colombier		/.SH *NAME/,/.SH *(DES|SYN)/ {
42*7dd7cddfSDavid du Colombier			if($1 != "\.SH"){
43*7dd7cddfSDavid du Colombier				if($1 ~ /^\..*/)
44*7dd7cddfSDavid du Colombier					i = 2;
45*7dd7cddfSDavid du Colombier				else
46*7dd7cddfSDavid du Colombier					i = 1;
47*7dd7cddfSDavid du Colombier				for(; i <= NF; i++){
48*7dd7cddfSDavid du Colombier					if(indesc){
49*7dd7cddfSDavid du Colombier						desc = desc " " $i;
50*7dd7cddfSDavid du Colombier					} else if($i ~ /^\\?-.*/) {
51*7dd7cddfSDavid du Colombier						indesc = 1;
52*7dd7cddfSDavid du Colombier					} else {
53*7dd7cddfSDavid du Colombier						syms = syms " " $i;
54*7dd7cddfSDavid du Colombier					}
55*7dd7cddfSDavid du Colombier				}
56*7dd7cddfSDavid du Colombier			}
57*7dd7cddfSDavid du Colombier		}
58*7dd7cddfSDavid du Colombier		END { print "- " desc; print "<DD><TT>" syms "</TT>"}
59*7dd7cddfSDavid du Colombier		' $i
60*7dd7cddfSDavid du Colombier		echo '</DT>'
61*7dd7cddfSDavid du Colombier	}
62*7dd7cddfSDavid du Colombier}
63*7dd7cddfSDavid du Colombierecho '</DL>'
64