#!/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

# try extracting the make bindist docs and then the hadrian bindist docs
mv ../../../../../../windows/doc/html/libraries/Win32-* . || \
    mv ../../../../../../windows/docs/html/libraries/Win32 . || \
    die "failed to find the Win32 package documentation"

sh gen_contents_index
cd ..
for i in haddock libraries users_guide
do
    tar -Jcf ../../../../../$i.html.tar.xz $i
done
mv index.html ../../../../..
cd ..
mv ./*.pdf ../../../..
cd ../../../..
[ "$NO_CLEAN" -eq 0 ] && rm -r inst
[ "$NO_CLEAN" -eq 0 ] && rm -r windows

