Home | History | Annotate | Line # | Download | only in tools
cknames revision 1.1
      1 #! /bin/sh
      2 set x $*
      3 . ./.param
      4 
      5 trap "rm -f $TMPDIR/*$$; exit;" 2
      6 
      7 for sec in $DIRLST
      8 do
      9 	/bin/ls $MANDIR/man$sec > $TMPDIR/man${sec}$$
     10 done
     11 
     12 for sec in $DIRLST
     13 do
     14 	cd $MANDIR/man$sec
     15 	dt=`date`
     16 	echo "$dt\n" > $TMPDIR/not.one.line$sec
     17 	echo "$dt\n" > $TMPDIR/name.order$sec
     18 	echo "$dt\n" > $TMPDIR/file.match$sec
     19 	echo "$dt\n" > $TMPDIR/no.TH$sec
     20 	echo "$dt\n" > $TMPDIR/no.NAME$sec
     21 	while read file
     22 	do
     23 		so=`line < $file | sed "s/ .*$//"`
     24 		if test "$so" = ".so"
     25 		then
     26 			continue
     27 		fi
     28 		grep "^.SH NAME" $file > /dev/null
     29 		if test $? -eq 1
     30 		then
     31 			echo $file >> $TMPDIR/no.NAME$sec
     32 			continue
     33 		fi
     34 		grep "^.SH SYNOPSIS" $file > /dev/null
     35 		if test $? -eq 0
     36 		then
     37 			lines=`cat $file | sed -n "/\.SH NAME/,/\.SH SYNOP/p" | wc -l | sed "s/ //g"`
     38 		else
     39 			lines=`cat $file | sed -n "/\.SH NAME/,/\.SH DESCR/p" | wc -l | sed "s/ //g"`
     40 		fi
     41 		if test $lines -gt 3
     42 		then
     43 			echo $file >> $TMPDIR/not.one.line$sec
     44 			continue
     45 		fi
     46 		th=`grep "^.TH" $file | line`
     47 		if test -z "$th"
     48 		then
     49 			echo $file >> $TMPDIR/no.TH$sec
     50 			continue
     51 		fi
     52 		set $th
     53 		name=`echo $2 | tr [A-Z] [a-z]`
     54 		suf=`echo $3 | tr [A-Z] [a-z]`
     55 		fname="${name}.$suf"
     56 		if test $fname != $file
     57 		then
     58 			echo $file >> $TMPDIR/file.match$sec
     59 		fi
     60 		ed - $file > $TMPDIR/tmp.$$ <<!
     61 			/^.SH NAME/+p
     62 			q
     63 !
     64 		nname=`cat $TMPDIR/tmp.$$ | sed -e "s/ .*//" -e "s/,.*//"`
     65 		rm -f $TMPDIR/tmp.$$
     66 		if test $name != $nname
     67 		then
     68 			echo $file >> $TMPDIR/name.order$sec
     69 		fi
     70 	done < $TMPDIR/man${sec}$$
     71 done
     72 
     73 rm -f $TMPDIR/*$$
     74