#!/bin/sh

set -e

die () {
    echo "$1" >&2
    exit 1
}

NO_CLEAN=0
if [ "$1" = "--no-clean" ]
then
    NO_CLEAN=1
    shift
fi
[ "$#" -eq 2 ] || die "Bad args. Usage: $0 [--no-clean] <Linux bindist> <Windows bindist>"

LINUX_BINDIST=$(realpath "$1")
WINDOWS_BINDIST=$(realpath "$2")

mkdir docs
cd docs
INST=$(pwd)/inst
tar -Jxf "$LINUX_BINDIST"
mv ghc* linux
cd linux
./configure --prefix="$INST"
make install
cd ..
[ "$NO_CLEAN" -eq 0 ] && rm -r linux

tar -Jxf "$WINDOWS_BINDIST"
mv ghc* windows
cd inst/share/doc/ghc*/html/libraries

mv ../../../../../../windows/doc/html/libraries/Win32-* . || \
    die "failed to find the Win32 package documentation"

sh gen_contents_index
cd ..
for i in */
do
    dir=${i%*/}
    tar -Jcf ../../../../../$dir.html.tar.xz $dir
done
mv index.html users_guide libraries ../../../../..
cd ..
mv ./*.pdf ../../../.. || \
    die "failed to find PDFs"
cd ../../../..
[ "$NO_CLEAN" -eq 0 ] && rm -r inst
[ "$NO_CLEAN" -eq 0 ] && rm -r windows

