#!/bin/sh

set -e

HADDOCK_ARGS=

case $* in
--inplace)
    HADDOCK=../inplace/bin/haddock
    HADDOCK_FILES1=`ls -1     */dist-install/doc/html/*/*.haddock | sort`
    HADDOCK_FILES2=`ls -1 dph/*/dist-install/doc/html/*/*.haddock | sort`
    HADDOCK_FILES="$HADDOCK_FILES1 $HADDOCK_FILES2"
    for HADDOCK_FILE in $HADDOCK_FILES
    do
        LIBPATH=`echo "$HADDOCK_FILE" | sed 's#/dist-install.*##'`
        NAME=`echo "$HADDOCK_FILE" | sed 's#.*/##' | sed 's#\.haddock$##'`
        # It's easier to portably remove tabs with tr than to try to get
        # sed to do what we want
        VERSION=`grep -i '^version:' $LIBPATH/$NAME.cabal | sed 's/.*://' | tr -d ' \t'`
        HADDOCK_ARG="--read-interface=${NAME}-${VERSION},$HADDOCK_FILE"
        HADDOCK_ARGS="$HADDOCK_ARGS $HADDOCK_ARG"
    done
    ;;
*)
    HADDOCK=../../../../../bin/haddock
    # We don't want the GHC API to swamp the index
    HADDOCK_FILES=`ls -1 */*.haddock | grep -v '/ghc\.haddock' | sort`
    for HADDOCK_FILE in $HADDOCK_FILES
    do
        NAME_VERSION=`echo "$HADDOCK_FILE" | sed 's#/.*##'`
        HADDOCK_ARG="--read-interface=${NAME_VERSION},$HADDOCK_FILE"
        HADDOCK_ARGS="$HADDOCK_ARGS $HADDOCK_ARG"
    done
    ;;
esac

# Now create the combined contents and index pages
$HADDOCK --gen-index --gen-contents -o . \
         -t "Haskell Hierarchical Libraries" \
         -p "prologue.txt" \
         $HADDOCK_ARGS

# Unhandled Windows help stuff?:

#libraries.HxS : libraries.txt
#	 haddock ...
#		-k libraries
#		--html-help=mshelp2
#	( cd $(HTML_DIR) && if Hxcomp -p libraries.HxC -o ../$@ ; then false ; else true ; fi ) || true
#
#libraries.chm : libraries.txt
#	haddock ...
#		-k libraries \
#		--html-help=mshelp \
#	( cd $(HTML_DIR) && if hhc libraries.hhp ; then false ; else true ; fi && mv libraries.chm .. ) || true

