# make-book-ps: shell script, built from toc.htm, to make PostScript MH book
#
# Ugly hack.  For Jerry Peek's use.  If you have suggestions, I'd be
# glad to get them.
#
# Tabstops in this script set at 4

## Note for Debian users:
##
##  Run this script like so:
##   sh make-postscript-mh-book
## 
##  I have removed the first line to invoke the shell:
##  #!/bin/sh
##  because Debian packaging policy discourages having executable scripts
##  outside of the PATH or of /usr/doc/PACKAGE/examples/.  That's why the
##  scripts is not executable and that you must invoke it with `sh' first.
## 
##  This file was adapted by Peter Galbraith <psg@debian.org> from 
##  Jerry Peek's script downloaded from
##   ftp://ftp.gw.com/pub/people/jpeek/mh/book-ps/make-book-ps
##  The changes are to adjust to where the files are installed,
##  and that they have been renamed to .html and compressed on Debian.

if ! command -v html2ps >/dev/null 2>&1; then
    echo "Could not find command html2ps."
    echo "Please install the Debian package html2ps and try again."
    exit 0                 
fi

# Overall setup
source=/usr/share/doc/mh-book/html			# HTML files
# Debian has /usr/doc mapped to http://localhost/doc
httpsource=http://localhost/doc/mh-book/html    # HTML GIF files
psfiles=/tmp/mh-book-ps				# Where PostScript files go
#baseurl="http://www.ics.uci.edu/~mh/book"	# For URLs at ends of pages
baseurl="http://localhost/doc/mh-book/html"	# For URLs at ends of pages

install -d $psfiles

front="index.html
roadmap.html.gz
overall/whaboo.html.gz
whatsnew.html.gz
updates.html.gz
copying.html.gz
structur.html.gz
browhelp.html.gz
servers.html.gz
to-do.html.gz
xmh/tocs/xmh.html.gz
exmh/tocs/exmh.html.gz"

ch00="overall/ch-p.html.gz
overall/whymh.html.gz
overall/whyboo.html.gz
overall/whaboo.html.gz
overall/neitthed.html.gz
overall/whanotbo.html.gz
overall/thefor.html.gz
overall/reqfocom.html.gz
overall/ack.html.gz"

ch01="overall/ch-i.html.gz
overall/whaema.html.gz
overall/howwor.html.gz
overall/intomim.html.gz
overall/addema.html.gz
overall/pro.html.gz
overall/whamh.html.gz
overall/obtxmh.html.gz"

ch02="overall/ch-kpotu.html.gz
overall/anand.html.gz
overall/mhbindir.html.gz
overall/mhlibdir.html.gz
overall/sysmai.html.gz
overall/audir.html.gz
overall/spexmh.html.gz
overall/speexmh.html.gz
overall/lin.html.gz
overall/caucha.html.gz"

ch03="overall/ch-itm.html.gz
overall/abe.html.gz
overall/ovofmime.html.gz
overall/mulmes.html.gz
overall/moabmi.html.gz"

ch04="overall/ch-su.html.gz
overall/getrea.html.gz
overall/setup.html.gz
overall/onmanpag.html.gz"

ch05="mh/ch-ttm.html.gz
mh/getsta.html.gz
mh/sensen.html.gz
mh/reapre.html.gz
mh/reprep.html.gz
mh/comopt.html.gz
mh/forfor.html.gz
mh/faswsprs.html.gz
mh/clermm.html.gz
mh/usimim.html.gz
mh/theswi.html.gz
mh/othfea.html.gz"

ch06="mh/ch-rymwm.html.gz
mh/shomes.html.gz
mh/remime.html.gz
mh/limimepa.html.gz
mh/morsca.html.gz
mh/chemsg.html.gz
mh/othinc.html.gz
mh/usmwp.html.gz
mh/pnmiba.html.gz"

ch07="mh/ch-smwm.html.gz
mh/senove.html.gz
mh/wiabnab.html.gz
mh/chaedi.html.gz
mh/mh.html.gz
mh/hea.html.gz
mh/wormes.html.gz
mh/cosemime.html.gz
mh/thecom.html.gz
mh/reprep-2.html.gz
mh/forfor-2.html.gz
mh/disdis.html.gz
mh/sencom.html.gz"

ch08="mh/ch-faomw.html.gz
mh/fol.html.gz
mh/thplofmh.html.gz
mh/finpic.html.gz
mh/gepiadse.html.gz
mh/prehpick.html.gz
mh/morseq.html.gz
mh/stormess.html.gz
mh/sorsor.html.gz
mh/rem.html.gz
mh/remrmf.html.gz
mh/annann.html.gz
mh/usilin.html.gz
mh/burdig.html.gz
mh/pamiafwp.html.gz
mh/rfl_man.html.gz
mh/mhsoamfm.html.gz"

ch09="mh/ch-mmwyw.html.gz
mh/runcom.html.gz
mh/mhanthsh.html.gz
mh/angen.html.gz
mh/confmhn.html.gz
mh/inchsu.html.gz
mh/chanam.html.gz
mh/setacc.html.gz
mh/defmai.html.gz
mh/shafol.html.gz
mh/drafil.html.gz
mh/drafil-o.html.gz
mh/pccewca.html.gz
mh/autmes.html.gz
mh/qufoac.html.gz"

ch10="mh/ch-nvomc.html.gz
mh/whacom.html.gz
mh/makcom.html.gz
mh/wcvaaof.html.gz
mh/verrep.html.gz
mh/mmbwm.html.gz
mh/vermes.html.gz
mh/verfor.html.gz
mh/edmeshm.html.gz
mh/smmpws.html.gz
mh/verpro.html.gz
mh/verpus.html.gz
mh/versca.html.gz
mh/vercha.html.gz
mh/verpic.html.gz"

ch11="mh/ch-mf.html.gz
mh/hl.html.gz
mh/mhstr.html.gz"

ch12="mh/ch-pnma.html.gz
mh/homwotb.html.gz
mh/thmafid.html.gz
mh/ruyomfi.html.gz
mh/exmbcom.html.gz
mh/nmenorc.html.gz
mh/stmifrc.html.gz
mh/redmerc.html.gz
mh/samimfr.html.gz
mh/altmhpr.html.gz
mh/putitat.html.gz
mh/debugti.html.gz"

ch13="mh/ch-itupw.html.gz
mh/wripro.html.gz
mh/wrioth.html.gz
mh/tesfil.html.gz
mh/comsub.html.gz
mh/usista.html.gz
mh/hanarg.html.gz
mh/finnam.html.gz
mh/wgiafw1l.html.gz
mh/atset.html.gz
mh/maimhm.html.gz
mh/thecom-2.html.gz
mh/getmenu.html.gz
mh/getpro.html.gz
mh/getenv.html.gz
mh/chaenv.html.gz
mh/wriedi.html.gz
mh/usiinf.html.gz
mh/watpro.html.gz
mh/proref.html.gz"

ch14="xmh/ch-ttx.html.gz
xmh/getsta-2.html.gz
xmh/runxmh.html.gz
xmh/whawin.html.gz
xmh/sendmai.html.gz
xmh/getmai.html.gz
xmh/repmai.html.gz
xmh/chaare.html.gz
xmh/seapic.html.gz
xmh/formes.html.gz
xmh/remmes.html.gz
xmh/leaxmh.html.gz
xmh/morxmh.html.gz"

ch15="xmh/ch-ux.html.gz
xmh/senmai.html.gz
xmh/scrbar.html.gz
xmh/edixmh.html.gz
xmh/reamai.html.gz
xmh/primai.html.gz
xmh/orgfol.html.gz
xmh/intseq.html.gz
xmh/usipic.html.gz
xmh/modseq.html.gz
xmh/thewin.html.gz"

ch16="xmh/ch-cx.html.gz
xmh/comopt-2.html.gz
xmh/comliop.html.gz
xmh/resfun.html.gz
xmh/resacc.html.gz
xmh/concus.html.gz
xmh/usihea.html.gz
xmh/chafor.html.gz
xmh/chacom.html.gz
xmh/snoxmh.html.gz"

ch17="mh-e/mh-e_1.html.gz
mh-e/mh-e_2.html.gz
mh-e/mh-e_3.html.gz
mh-e/mh-e_4.html.gz
mh-e/mh-e_5.html.gz
mh-e/mh-e_6.html.gz
mh-e/mh-e_7.html.gz
mh-e/mh-e_8.html.gz
mh-e/mh-e_9.html.gz"

ch18="mh-e/mh-e_10.html.gz
mh-e/mh-e_11.html.gz
mh-e/mh-e_12.html.gz
mh-e/mh-e_15.html.gz
mh-e/mh-e_16.html.gz
mh-e/mh-e_17.html.gz
mh-e/mh-e_18.html.gz
mh-e/mh-e_19.html.gz
mh-e/mh-e_20.html.gz
mh-e/mh-e_21.html.gz
mh-e/mh-e_22.html.gz
mh-e/mh-e_28.html.gz
mh-e/mh-e_34.html.gz
mh-e/mh-e_35.html.gz
mh-e/mh-e_36.html.gz
mh-e/mh-e_37.html.gz
mh-e/mh-e_38.html.gz
mh-e/mh-e_39.html.gz
mh-e/mh-e_40.html.gz
mh-e/mh-e_41.html.gz
mh-e/mh-e_42.html.gz
mh-e/mh-e_43.html.gz
mh-e/mh-e_44.html.gz
mh-e/mh-e_45.html.gz"

ch19="mh-e/mh-e_46.html.gz
mh-e/mh-e_47.html.gz
mh-e/mh-e_48.html.gz
mh-e/mh-e_49.html.gz
mh-e/mh-e_50.html.gz
mh-e/mh-e_51.html.gz
mh-e/mh-e_52.html.gz
mh-e/mh-e_53.html.gz
mh-e/mh-e_54.html.gz
mh-e/mh-e_55.html.gz
mh-e/mh-e_56.html.gz
mh-e/mh-e_59.html.gz
mh-e/mh-e_61.html.gz
mh-e/mh-e_62.html.gz
mh-e/mh-e_63.html.gz
mh-e/mh-e_64.html.gz
mh-e/mh-e_65.html.gz
mh-e/mh-e_67.html.gz
mh-e/mh-e_68.html.gz
mh-e/mh-e_69.html.gz
mh-e/mh-e_70.html.gz
mh-e/mh-e_71.html.gz
mh-e/mh-e_72.html.gz
mh-e/mh-e_73.html.gz
mh-e/mh-e_74.html.gz
mh-e/mh-e_75.html.gz
mh-e/mh-e_76.html.gz
mh-e/mh-e_77.html.gz
mh-e/mh-e_78.html.gz
mh-e/mh-e_79.html.gz
mh-e/mh-e_80.html.gz
mh-e/mh-e_81.html.gz
mh-e/mh-e_82.html.gz
mh-e/mh-e_83.html.gz
mh-e/mh-e_84.html.gz"

ch20="exmh/ch-ie.html.gz
exmh/getsta-4.html.gz
exmh/runexm.html.gz
exmh/thexmdi.html.gz
exmh/senmai-5.html.gz
exmh/anacap.html.gz
exmh/genema.html.gz
exmh/remime-2.html.gz
exmh/repmai-2.html.gz
exmh/selmes.html.gz
exmh/formes-2.html.gz
exmh/delmes.html.gz
exmh/prefer.html.gz
exmh/leaexm.html.gz
exmh/moabex.html.gz"

ch21="exmh/ch-ue.html.gz
exmh/mouaro.html.gz
exmh/keycom.html.gz
exmh/thexmd-2.html.gz
exmh/foldis.html.gz
exmh/folcac.html.gz
exmh/tabcon.html.gz
exmh/mesdis.html.gz
exmh/manmes.html.gz
exmh/senmai-6.html.gz
exmh/maiali.html.gz
exmh/thbuied.html.gz
exmh/maiform.html.gz
exmh/mimfor.html.gz
exmh/faces.html.gz
exmh/usaned.html.gz
exmh/filmai.html.gz
exmh/tips.html.gz
exmh/tksexa.html.gz
exmh/morinf.html.gz"

ch22="exmh/ch-ce.html.gz
exmh/prefer-2.html.gz
exmh/presec.html.gz
exmh/bindui.html.gz
exmh/mhprof.html.gz
exmh/xresou.html.gz
exmh/wiclhi.html.gz
exmh/resbut.html.gz
exmh/resmen.html.gz
exmh/butgro.html.gz
exmh/colres.html.gz
exmh/colhea.html.gz
exmh/gepore.html.gz
exmh/icopos.html.gz
exmh/fodire.html.gz
exmh/mimres.html.gz
exmh/proexm.html.gz
exmh/codorg.html.gz"

appa="mh/ap-wcygf.html.gz
mh/mhbbo.html.gz
mh/morabo.html.gz"

appb="overall/ap-homxa.html.gz
overall/hiofmh.html.gz
overall/xmh.html.gz
overall/exmh.html.gz
overall/earmhe.html.gz
mh-e/chamhe.html.gz"

appc="overall/ap-rl.html.gz"

appd="mh/ap-efap.html.gz
mh/obtpro.html.gz
overall/faq.html.gz
overall/rfcaid.html.gz
mh/mh-2.html.gz
mh/mhscex.html.gz
overall/metama.html.gz
mh-e/getmhe.html.gz
exmh/exmh-2.html.gz
mh/pritba.html.gz
mh/e-aligre.html.gz
mh/e-append.html.gz
mh/e-autoin.html.gz
mh/e-automh.html.gz
mh/e-distpr.html.gz
mh/tiaooril.html.gz
mh/e-drmm.html.gz
xmh/e-edprof.html.gz
mh/e-execit.html.gz
mh/e-fols.html.gz
mh/e-forwed.html.gz
mh/e-fpick.html.gz
mh/e-mhprof.html.gz
mh/e-mimeca.html.gz
mh/e-mkfona.html.gz
mh/e-mysend.html.gz
mh/e-origin.html.gz
mh/e-pick2m.html.gz
mh/e-pof.html.gz
mh/e-rcvsea.html.gz
mh/e-recomp.html.gz
mh/e-resend.html.gz
mh/e-rfl.html.gz
mh/e-rmmer.html.gz
mh/e-scandr.html.gz
mh/e-showpr.html.gz
mh/e-storep.html.gz
xmh/e-xmhpri.html.gz"

appe="overall/ap-rg.html.gz
mh/mhrg.html.gz
mh/r-ali.html.gz
mh/r-anno.html.gz
mh/r-burst.html.gz
mh/r-comp.html.gz
mh/r-dist.html.gz
mh/r-flist.html.gz
mh/r-folder.html.gz
mh/r-foldrs.html.gz
mh/r-forw.html.gz
mh/r-inc.html.gz
mh/r-mark.html.gz
mh/r-mhbuil.html.gz
mh/r-mhl.html.gz
mh/r-mhlist.html.gz
mh/r-mhmail.html.gz
mh/r-mhn.html.gz
mh/r-mhpara.html.gz
mh/r-mhpath.html.gz
mh/r-mhshow.html.gz
mh/r-mhstor.html.gz
mh/r-msgchk.html.gz
mh/r-msh.html.gz
mh/r-next.html.gz
mh/r-packf.html.gz
mh/r-packmb.html.gz
mh/r-pick.html.gz
mh/r-prev.html.gz
mh/r-prompt.html.gz
mh/r-rcvdis.html.gz
mh/r-rcvpac.html.gz
mh/r-rcvsto.html.gz
mh/r-rcvtty.html.gz
mh/r-refile.html.gz
mh/r-repl.html.gz
mh/r-rmf.html.gz
mh/r-rmm.html.gz
mh/r-scan.html.gz
mh/r-send.html.gz
mh/r-show.html.gz
mh/r-slocal.html.gz
mh/r-sortm.html.gz
mh/r-viamai.html.gz
mh/r-whatno.html.gz
mh/r-whom.html.gz
xmh/xmhrg.html.gz
mh-e/mherg.html.gz
exmh/exmhrg.html.gz
overall/mimerg.html.gz"

for chunk in 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 20 21 22
do
	eval files="\$ch$chunk"
	(
	cat <<- ENDHDR
	<HTML>
	<HEAD>
	<TITLE>MH &amp; nmh: Printed chapter $chunk</TITLE>
	</HEAD>

	<BODY>
	ENDHDR
	for file in $files
	do
		figurl=$httpsource/`dirname $file` 
		echo "<P><HR><STRONG>URL of section below: $baseurl/$file</STRONG><P>"
		(zcat -f --stdout $source/${file} | sed "
		1,/^<BODY BGCOLOR=\"\#FFFFFF\">/d
		/^<\/BODY>/,\$d
		s@<[Ii][Mm][Gg] .* [Ss][Rr][Cc]=\"@&$figurl/@
		" ) || echo "PROBLEM WITH sed $file IN $chunk ?!?" 1>&2
	done
	cat <<- ENDFTR
	</BODY>
	</HTML>
	ENDFTR
	) |
	html2ps -D -g -n -N ${chunk}01 -u |
	gzip -9  > $psfiles/ch$chunk.ps.gz
done

mhe_date=`date '+%d %h %Y'`
for chunk in 17 18 19
do
	eval files="\$ch$chunk"
	(
	cat <<- ENDHDR
	<HTML>
	<HEAD>
	<TITLE>MH &amp; nmh: Printed chapter $chunk</TITLE>
	</HEAD>

	<BODY>
	ENDHDR
	for file in $files
	do
		figurl=$httpsource/`dirname $file` 
		echo "<P><HR><STRONG>URL of section below: $baseurl/$file<BR>"
		echo "as of $mhe_date.</STRONG><BR>"
		(zcat -f --stdout $source/${file} |sed "
		1,/^<BODY BGCOLOR=\"\#FFFFFF\">/d
		/^<\/BODY>/,\$d
		s@<[Ii][Mm][Gg] .* [Ss][Rr][Cc]=\"@&$figurl/@
		" ) || echo "PROBLEM WITH sed $file IN $chunk ?!?" 1>&2
	done
	cat <<- ENDFTR
	</BODY>
	</HTML>
	ENDFTR
	) |
	html2ps -D -g -n -N ${chunk}01 -u |
	gzip -9  > $psfiles/ch$chunk.ps.gz
done

for pair in "a 23" "b 24" "c 25" "d 26" "e 27"
do
	set x $pair
	eval chunk=app$2 page=$3

	eval files="\$$chunk"
	(
	cat <<- ENDHDR
	<HTML>
	<HEAD>
	<TITLE>MH &amp; nmh: Printed appendix $chunk</TITLE>
	</HEAD>

	<BODY>
	ENDHDR
	for file in $files
	do
		figurl=$httpsource/`dirname $file` 
		echo "<P><HR><STRONG>URL of section below: $baseurl/$file</STRONG><P>"
		(zcat -f --stdout $source/${file} | sed "
		1,/^<BODY BGCOLOR=\"\#FFFFFF\">/d
		/^<\/BODY>/,\$d
		s@<[Ii][Mm][Gg] .* [Ss][Rr][Cc]=\"@&$figurl/@
		" ) || echo "PROBLEM WITH sed $file IN $chunk ?!?" 1>&2
	done
	cat <<- ENDFTR
	</BODY>
	</HTML>
	ENDFTR
	) |
	html2ps -D -g -n -N ${page}01 -u |
	gzip -9  > $psfiles/$chunk.ps.gz
done


(
cat <<- ENDHDR
<HTML>
<HEAD>
<TITLE>MH &amp; nmh: Printed Front-matter and Table of Contents</TITLE>
</HEAD>

<BODY>
ENDHDR
for file in $front toc.html.gz
do
        figurl=$httpsource/`dirname $file` 
	echo "<P><HR><STRONG>URL of section below: $baseurl/$file</STRONG><P>"
	(zcat -f --stdout $source/${file} | sed "
	1,/^<BODY BGCOLOR=\"\#FFFFFF\">/d
	/^<\/BODY>/,\$d
	s@<[Ii][Mm][Gg] .* [Ss][Rr][Cc]=\"@&$figurl/@
	" ) || echo "PROBLEM WITH sed $file IN $chunk ?!?" 1>&2
done
cat <<- ENDFTR
</BODY>
</HTML>
ENDFTR
) |
html2ps -D -g -u |
gzip -9  > $psfiles/front.ps.gz

sed 's/$/<BR>/
1i\
<HTML>\
<HEAD>\
<TITLE>MH &amp; nmh: Index for Printed Version</TITLE>\
</HEAD>\
<BODY>\
<H1>MH &amp; nmh: Index for Printed Version</H1>
$a\
<HR>\'"
<EM>Printed from $baseurl/indx-cgi.html on $mhe_date</EM>"'\
<P>\
This file first appeared in the updated online edition of the book\
<I>MH &amp; nmh: Email for Users &amp; Programmers</I>, by Jerry Peek.\
Copyright &copy; 1997 by Jerry Peek.\
This file is freely-available; you can redistribute it and/or modify\
it under the terms of the GNU General Public License as published by\
the Free Software Foundation.  For more information, see\
<A HREF="../copying.html.gz">the file <I>copying.html.gz</I></A>.\
<P>\
<ADDRESS>\
Suggestions are welcome:\
<A HREF="http://www.jpeek.com/~jpeek/">Jerry Peek</A> <A HREF="mailto:jpeek@jpeek.com">&lt;jpeek@jpeek.com&gt;</A>\
</ADDRESS>\
</BODY>\
</HTML>' $source/indx-cgi.html | html2ps -D -g -n -N 2801 -u | gzip -9 > $psfiles/index.ps.gz

echo Output files created in  $psfiles
