gno/doc/refs/mkhtmlman

84 lines
2.0 KiB
Bash
Executable File

#! /bin/sh
#
# Devin Reade, November 1997.
#
# $Id: mkhtmlman,v 1.10 2012/08/25 07:22:00 gdr Exp $
TMPDIR=${TMPDIR:-/tmp}
#
# Make sure we know where everything is going.
#
# GNOROOT is the root of the GNO source tree.
# MANHTML is the directory where we will be putting our manual pages.
#
MYDIR=`dirname $0`
[ -z "$GNOROOT" ] && GNOROOT=$MYDIR/../..
[ -z "$MANHTML" ] && MANHTML=$MYDIR/work
[ -z "$NAME" ] && NAME="Fake Name"
[ -z "$ADDR" ] && ADDR="nobody@example.com"
if [ ! -x ./newer ]; then
echo "./newer does not exist"
exit 1
fi
set +e
listfile=$TMPDIR/mkhtmlman.1.$$
trap "rm -f $listfile" 0 1 2 15
MANDIRS="$GNOROOT/usr.man $GNOROOT/*bin* $GNOROOT/*lib*"
for section in 1 2 3 4 5 6 7 8; do
dest=$MANHTML/man$section
[ -d $dest ] || mkdir -p $dest
for F in 00.DUMMY `find $MANDIRS -type f -name '*.'$section -print \
| grep -v .AppleDouble \
| grep -v .finderinfo \
| grep -v .resource \
| grep -v libcurses/PSD.doc \
| grep -v bin/gsh/updates1.1 \
| grep -v sed/tests` ; do
[ "$F" = 00.DUMMY ] && continue;
if egrep -q -e '^'"$F"'$' ignored.pages; then
echo "$F: ignored"
continue
fi
F_noG="$F"
if [ -f $F'G' ]; then
F="$F"G
fi
macro=''
if ! egrep -q -e '^\.TH.*GNO' $F; then
if egrep -q -e '^\.Sh NAME' $F; then
echo "$F: Using the BSD-formatted man page."
macro=doc
else
echo "$F: This does not appear to be a GNO manual page." \
"Skipped."
continue
fi
fi
f=`basename $F_noG`
f2=`echo $f | perl -pe 's/\.[^\.]+$//;'`
echo "$f" >> $listfile
if ! ./newer $dest/$f.html $F; then
echo "creating $dest/$f.html"
nroff -man$macro $F | man2html -nodepage | \
perl -p -e \
's/<BODY>/<title>GNO: '"$f2($section)"'<\/title><body bgcolor=\#ffffff textcolor=\#000000 linkcolor=\#0000FF vlinkcolor=\#001177 alinkcolor=\#001177>/;'\
> $dest/$f.html
fi
done
echo "creating $dest/00.index.html"
sort $listfile | \
./mkmandex -s$section -name="$NAME" -addr="$ADDR" -mkso="$MKSO" \
-hroot="$HTMLROOT" > $dest/00.index.html
rm $listfile
done