#! /bin/sh
#
# This file is part of DisOrder
-# Copyright (C) 2004, 2005 Richard Kettlewell
+# Copyright (C) 2004, 2005, 2007, 2008, 2010 Richard Kettlewell
#
-# This program is free software; you can redistribute it and/or modify
+# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
+# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
-# USA
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
set -e
-title=$(basename $1)
+stdhead=false
+extension="html"
+
+while test $# -gt 0; do
+ case "$1" in
+ -stdhead )
+ stdhead=true
+ ;;
+ -extension )
+ shift
+ extension=$1
+ ;;
+ -- )
+ shift
+ break
+ ;;
+ -* )
+ echo >&2 "ERROR: unknown option $1"
+ exit 1
+ ;;
+ * )
+ break
+ ;;
+ esac
+ shift
+done
-cat <<EOF
-<html>
- <head>
-@include{stdhead}@
- <title>$title</title>
- </head>
- <body>
-@include{@label{menu}@}@
-EOF
-printf " <pre class=manpage>"
-# this is kind of painful using only BREs
-nroff -man "$1" | sed 's/&/\&/g;
- s/</\</g;
- s/>/\>/g;
- s/@/\@/g;
- s!\(.\)\b\1!<b>\1</b>!g;
- s!\(&[#0-9a-z][0-9a-z]*;\)\b\1!<b>\1</b>!g;
- s!_\b\(.\)!<i>\1</i>!g;
- s!_\b\(&[#0-9a-z][0-9a-z]*;\)!<i>\1</i>!g;
- s!</\([bi]\)><\1>!!g'
-cat <<EOF
-</pre>
-@include{@label{menu}@end}@
- </body>
-</html>
-EOF
-# arch-tag:c0096f33b8a8f7d88236043ed970ae83
+for page; do
+ title=$(basename $page)
+ output=$page.$extension
+ echo "$page -> $output" >&2
+ exec > $output.new
+ echo "<html>"
+ echo " <head>"
+ if $stdhead; then
+ echo "@quiethead@#"
+ fi
+ echo " <title>$title</title>"
+ echo " </head>"
+ echo " <body>"
+ if $stdhead; then
+ echo "@stdmenu{}@#"
+ fi
+ printf " <pre class=manpage>"
+ # this is kind of painful using only BREs
+ nroff -Tascii -man "$page" | ${GNUSED} \
+ '1d;$d;
+ 1,/./{/^$/d};
+ s/&/\&/g;
+ s/</\</g;
+ s/>/\>/g;
+ s/@/\@/g;
+ s!\(.\)\b\1!<b>\1</b>!g;
+ s!\(&[#0-9a-z][0-9a-z]*;\)\b\1!<b>\1</b>!g;
+ s!_\b\(.\)!<i>\1</i>!g;
+ s!_\b\(&[#0-9a-z][0-9a-z]*;\)!<i>\1</i>!g;
+ s!</\([bi]\)><\1>!!g'
+ echo "</pre>"
+ if $stdhead; then
+ echo "@credits"
+ fi
+ echo " </body>"
+ echo "</html>"
+ mv $output.new $output
+done