plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

manweb (1675B)


      1 #!/usr/local/plan9/bin/rc
      2 
      3 verbose=no
      4 if(~ $1 -v)
      5 	verbose=yes
      6 
      7 fn silencer {
      8 	switch($verbose){
      9 	case no
     10 		cat >/dev/null
     11 	case yes
     12 		cat
     13 	}
     14 }
     15 
     16 . 9.rc
     17 cd $PLAN9/man
     18 # rm -f */*.html
     19 
     20 for(i in */INDEX) @{
     21 	n=`{echo $i | sed 's/man//;s!/INDEX!!'}
     22 	cat $PLAN9/dist/manindextop.html | sed 's/NNN/'$n'/g'
     23 	cd `{basename -d $i}
     24 	# complicated sort order: want 9p.3, 9p-cmdbuf.3, 9pclient.3
     25 	for (j in `{ls [a-z0-9:]*.[0-9]* >[2]/dev/null | sed 's/[.\-]/ &/g;s/\./ &/g' | sort | tr -d ' '}){
     26 		n=`{grep '^\.TH' $j | sed 1q | awk '{print $3}'}
     27 		name=`{echo $j | sed 's/\..*//'}
     28 		if(~ $name 0intro)
     29 			name=intro
     30 		if not{
     31 			echo '<tr height=1><td>'
     32 			echo '<tr height=1><td colspan=2 bgcolor=#cccccc>'
     33 			echo '<tr height=1><td>'
     34 		}
     35 		if(~ $#name 0)
     36 			name=XXX-name-$j-XXX
     37 		if(~ $#n 0)
     38 			n=XXX-n-$j-XXX
     39 		echo -n '<tr><td valign=top><a href="'$name'.html">'$name'('$n')</a><td>'
     40 		sed -n '
     41 		/SH *NAM/,/SH/{
     42 			/SH/d
     43 			s/, *$//
     44 			ty
     45 			:y
     46 			s/ *\\*-.*/&/
     47 			tx
     48 			s/ *\\\(mi.*/&/
     49 			tx
     50 			s/\n\\n/\
     51 /g
     52 			p
     53 		}
     54 		/SH *DES/q
     55 		d
     56 		:x
     57 		/^$/d
     58 		s/\n\n/\
     59 /g
     60 		s/\\-/\&ndash;/
     61 		p
     62 		q' $j
     63 	}
     64 	cat $PLAN9/dist/manindexbottom.html
     65 } >$i.html && mv $i.html `{echo $i.html | tr A-Z a-z}
     66 
     67 for (i in */[~.]*.[0-9]*){
     68 	j=`{echo $i | 9 sed 's/\..*//'}
     69 	p=`{basename $j}
     70 	d=`{basename -d $j}
     71 	if(~ $p 0intro)
     72 		p=intro
     73 	if(~ $verbose yes) echo $d/$p
     74 	troff -manhtml $i | troff2html -t 'Plan 9 from User Space'>/tmp/manweb.html |[2] silencer
     75 	{
     76 		sed '/<!-- TRAILER -->/q' /tmp/manweb.html
     77 		cat $PLAN9/dist/mantrailer.html
     78 		sed -n '/<!-- TRAILER -->/,$p' /tmp/manweb.html
     79 	} | $PLAN9/dist/addsrclinks >$d/$p.html
     80 }
     81 rm /tmp/manweb.html
     82 cd $PLAN9/dist
     83 ./fixurls $PLAN9/man/man*/*.html