#!@BASH@
# Id: install-info-html,v 1.3 2004/04/11 17:56:47 karl Exp

name=install-info-html
version=1.0

all=
index_dir=.

#
# debugging
#
debug_echo=:


#
# print usage
#
function help ()
{
       cat << EOF
$name $version
Install HTML info document.

Usage: $name [OPTION]... [DOCUMENT-DIR]...

Options:
 -a,--all             assume all subdirectories of index to be DOCUMENT-DIRs
 -d,--dir=DIR         set index directory to DIR (default=.)
 -D,--debug           print debugging info
 -h,--help            this help text
 -v,--version         show version
EOF
}


function cleanup ()
{
       $debug_echo "cleaning ($?)..."
}

trap cleanup 0 9 15

#
# Find command line options and switches
#

# "x:" x takes argument
#
options="adhvW:"
#
# ugh, "\-" is a hack to support long options
# must be in double quotes for bash-2.0

while getopts "\-:$options" O
do
       $debug_echo "O: \`$O'"
       $debug_echo "arg: \`$OPTARG'"
       case $O in
               a)
                       all=yes
                       ;;
               D)
                       [ "$debug_echo" = "echo" ] && set -x
                       debug_echo=echo
                       ;;
               h)
                       help;
                       exit 0
                       ;;
               v)
                       echo $name $version
                       exit 0
                       ;;
               d)
                       index_dir=$OPTARG
                       ;;
       # a long option!
       -)
               case "$OPTARG" in
                       a*|-a*)
                               all=yes
                               ;;
                       de*|-de*)
                               [ "$debug_echo" = "echo" ] && set -x
                               debug_echo=echo
                               ;;
                       h*|-h*)
                               help;
                               exit 0
                               ;;
                       di*|-di*)
                               index_dir="`expr \"$OPTARG\" ':' '[^=]*=\(.*\)'`"
                               ;;
                       version|-version)
                               echo $name $version
                               exit 0
                               ;;
                       *|-*)
                               echo "$0: invalid option -- \"$OPTARG\""
                               help;
                               exit -1
                               ;;
               esac
       esac
done
shift `expr $OPTIND - 1`

#
# Input file name
#
if [ -z "$all" ] && [ -z "$1" ]; then
       help
       echo "$name: No HTML documents given"
       exit 2
fi

if [ -n "$all" ] && [ -n "$1" ]; then
       echo "$name: --all specified, ignoring DIRECTORY-DIRs"
fi

if [ -n "$all" ]; then
       document_dirs=`/bin/ls -d1 $index_dir`
else
       document_dirs=$*
fi

index_file=$index_dir/index.html
rm -f $index_file
echo -n "$name: Writing index: $index_file..."

# head
cat >> $index_file <<EOF
<html>
<head><title>Info documentation index</title></head>
<body>
<h1>Info documentation index</h1>
This is the directory file \`index.html' a.k.a. \`DIR', which contains the
topmost node of the HTML Info hierarchy.
<p>
This is all very much Work in Progress (WiP).
<p>
<ul>
EOF

#list
for i in $document_dirs; do
       echo "<li> <a href=\"$i/$i.html\">$i</a></li>"
done >> $index_file

# foot
cat >> $index_file <<EOF
</ul>
</body>
</html>
EOF
echo