#!/bin/sh
# $Id: update-yorickdoc,v 1.5 2009/12/02 16:01:03 paumard Exp $

set -e

# First set "builtin" defaults, see conffile for details:
CONFFILE=/etc/yorick-doc
USERFILE=${HOME}/.`basename ${CONFFILE}`
ENABLE_AUTO=1
SRC_DIR=/usr/share/yorick-doc
TEMPLATE=${SRC_DIR}/template.html
FROM=/usr/share/yorick/i:/usr/share/yorick/i0
TO=/usr/share/doc/yorick-doc
XREF_DIR=html_xref
QUIET=1

# source CONFFILE to possibly override these defaults:
if [ -r $CONFFILE ]; then
    . $CONFFILE
fi
if [ `id -u` -gt 0 -a -r $USERFILE ]; then
    . $USERFILE
fi

usage() {
    echo Usage: `basename $0` '[--auto|-a] [--purge|-p] [--verbose|-v|--quiet|-q] \'
    echo '   [--src-dir=] [--from=] [--to=] [--template=] [--xref-dir=] [--conf=]'
}

# parse command-line
PURGE=0
for opt; do
    case $opt in
	--auto|-a)
	    if [ $ENABLE_AUTO -eq 0 ]; then
		echo "ENABLE_AUTO set to zero in $CONFFILE or equivalent"
		echo "Not updating Yorick documentation"
		exit 0
	    fi
            if type dpkg-trigger >/dev/null 2>&1 ; then
                exit 0
            fi
	    ;;
	--auto-now|-A)
	    if [ $ENABLE_AUTO -eq 0 ]; then
		echo "ENABLE_AUTO set to zero in $CONFFILE or equivalent"
		echo "Not updating Yorick documentation"
		exit 0
	    fi
	    ;;
	--purge|-p)
	    PURGE=1
	    ;;
	--verbose|-v)
	    QUIET=0
	    ;;
	--quiet|-q)
	    QUIET=1
	    ;;
	--src-dir=*)
	    SRC_DIR=${opt#--*=}
	    ;;
	--from=*)
	    FROM=${opt#--*=}
	    ;;
	--to=*)
	    TO=${opt#--*=}
	    ;;
	--template=*)
	    TEMPLATE=${opt#--*=}
	    ;;
	--xref-dir=*) 
	    XREF_DIR=${opt#--*=}
	    ;;
	--conf=*) 
	    CUSTOMRC=${opt#--*=}
	    if [ -r $CUSTOMRC ]; then
		. $CUSTOMRC
	    else
		echo "Warning: $CUSTOMRC not found"
	    fi
	    ;;
	*)
	    echo Unknown parameter $opt
	    usage
	    exit 1
	    ;;
    esac
done

if [ $QUIET -eq 1 ]; then
    QUIET=--quiet
else
    QUIET=
fi

# Do the actual work
echo Updating Yorick documentation in ${TO}/${XREF_DIR}
if [ -e ${TO}/${XREF_DIR} ]; then
    rm -Rf ${TO}/${XREF_DIR}
fi

if [ $PURGE -eq 1 ]; then
    echo "${TO}/${XREF_DIR} deleted."
    exit 0
fi

if [ -x "`which yorick`" ]; then
    mkdir -p $TO
    PACKINFO=`mktemp`
    KEYWORDS=`mktemp`
    ALIASES=`mktemp`

    cat ${SRC_DIR}/*.packinfo >> $PACKINFO
    cat ${SRC_DIR}/*.keywords | sort | uniq >> $KEYWORDS
    cat ${SRC_DIR}/*.aliases >> $ALIASES

    yorick -batch htmldoc.i --template=$TEMPLATE --packinfo=$PACKINFO \
	--keywords=$KEYWORDS --aliases=$ALIASES --from=$FROM --to=$TO \
	--xref-dir=$XREF_DIR $QUIET

    rm -f $PACKINFO $KEYWORDS $ALIASES
else
    echo "Yorick not found; ${TO}/${XREF_DIR} deleted."
fi

exit 0
