#!/bin/sh

## John R. Sheets <jsheets@codeweavers.com>

## This is a convenience script for building the website docs for
## www.winehq.com.  It creates tarballs of the HTML with special
## server-side includes and CSS settings that aren't appropriate for
## the mainline Wine tree.  For this reason, and to make it easier to
## set up an automated website update system, I'm putting this in
## a standalone shell script.
##
## There's no need to invoke the Wine make system just for web
## updates.  For example, we can just grab the documentation
## subdirectory, without having to pull the entire wine tree:
##
## $ cvs co wine/documentation
## $ cd wine/documentation
## $ ./make_winehq
## $ rsync ...

WWWDIR=www.winehq.com
## Want to put this into a sub-directory for easier maintenance
if [ -d "$WWWDIR" -o -f "$WWWDIR" ]; then
  rm -rf "$WWWDIR.old"
  mv "$WWWDIR" "$WWWDIR".old
fi
mkdir "$WWWDIR"

## Create five-book HTML tarball
echo "db2html wine-user.sgml"
db2html wine-user.sgml
echo "db2html wine-devel.sgml"
db2html wine-devel.sgml
echo "db2html winelib-user.sgml"
db2html winelib-user.sgml
echo "db2html wine-faq.sgml"
db2html wine-faq.sgml
tar czf winedoc-html.tgz wine-user wine-devel winelib-user wine-faq
cp winedoc-html.tgz "$WWWDIR"

## Create PostScript tarball
echo "db2ps -d ./print.dsl wine-user.sgml"
db2ps -d ./print.dsl wine-user.sgml > /dev/null 2>&1
echo "db2ps -d ./print.dsl wine-devel.sgml"
db2ps -d ./print.dsl wine-devel.sgml > /dev/null 2>&1
echo "db2ps -d ./print.dsl winelib-user.sgml"
db2ps -d ./print.dsl winelib-user.sgml > /dev/null 2>&1
echo "db2ps -d ./print.dsl wine-faq.sgml"
db2ps -d ./print.dsl wine-faq.sgml > /dev/null 2>&1
tar czf winedoc-ps.tgz wine-user.ps wine-devel.ps winelib-user.ps wine-faq.ps
cp winedoc-ps.tgz "$WWWDIR"

## Create PDF tarball
echo "db2pdf -d ./print.dsl wine-user.sgml"
db2pdf -d ./print.dsl wine-user.sgml > /dev/null 2>&1
echo "db2pdf -d ./print.dsl wine-devel.sgml"
db2pdf -d ./print.dsl wine-devel.sgml > /dev/null 2>&1
echo "db2pdf -d ./print.dsl winelib-user.sgml"
db2pdf -d ./print.dsl winelib-user.sgml > /dev/null 2>&1
echo "db2pdf -d ./print.dsl wine-faq.sgml"
db2pdf -d ./print.dsl wine-faq.sgml > /dev/null 2>&1
tar czf winedoc-pdf.tgz wine-user.pdf wine-devel.pdf winelib-user.pdf wine-faq.pdf
cp winedoc-pdf.tgz "$WWWDIR"

## Create SGML tarball
echo "Creating SGML package..."
tar czf winedoc-sgml.tgz *.sgml *.dsl *.ent
cp winedoc-sgml.tgz "$WWWDIR"

## Done creating downloadable tarballs for users.  Now we want to
## create a tarball of SHTML in a slightly different form, for the
## website.  These versions use special server-side includes which
## aren't appropriate outside of winehq.com.

## Create four-book SHTML tarball
echo "db2html wine-user.sgml"
db2html wine-user.sgml
echo "db2html wine-devel.sgml"
db2html wine-devel.sgml
echo "db2html winelib-user.sgml"
db2html winelib-user.sgml
echo "db2html wine-faq.sgml"
db2html wine-faq.sgml
tar czf winehq-shtml.tgz wine-user wine-devel winelib-user wine-faq
cp winehq-shtml.tgz "$WWWDIR"
