#!/bin/sh
#  
#  hmakeindex:	A shell script for enabling hlatex index.
#
#			yunju@casaturn.kaist.ac.kr

HINDEXT=.ks
MAKEINDEX=makeindex
TEXTOKS=tex2ks
ECHO=echo
RM="/bin/rm -f"
HTEX=htex.0.9

if [ $# -eq 0 ] ; then
  echo "

  hmakeindex:	A shell script for enabling hlatex index.
Usage:	hmakeindex [-lqrcg] [-s sty] [-o ind] [-t log] [-p num] [idx0 idx1 ...]

	* \"hmakeindex\" converts each file specified in command line
	  using \"tex2ks\" which is the inverse of \"htex\" used in \"hlatex\",
	  and then runs makeindex idx?. Read the manual of makeindex to 
	  understand various options(please don't use -i options in hmakeindex).
"
  exit
fi

#  ȭ Ʈ ´
INDICES=

# makeindex  ɼǵ ´
GOPT=

# ȭ ̸ æ.
OUTFILE=

run_tex2ks() {
    if [ -r "$1" ]; then
	F=$1; NF=$1.$$
    elif [ -r "$1.idx" ]; then
	F=$1.idx; NF=$1.$$
    else
      $ECHO "File $1 or $1.idx not found" ; exit 1
    fi

    $ECHO "tex2ks: Converting $F into $NF"
    $TEXTOKS $F $NF
    INDICES="$INDICES $NF"
}

parseoptions () {
    while [ "$#" -ne "0" ]
    do
	case $1 in
	    -s|-t|-p)
		GOPT="$GOPT $1 $2"
		shift 2
		;;
	    -o)
		OUTFILE=$2
	        shift 2
    		;;
	    -*) 
		GOPT="$GOPT $1"
		shift 1
		;;
	    *)
		if [ x$OUTFILE = "x" ]; then    # first index file
		 	OUTFILE=`basename $1 .idx`.ind
		fi
		run_tex2ks $1
		shift 1
		;;
	esac
    done
}

parseoptions $@
$ECHO "hmakeindex: Running makeindex"
if [ x$OUTFILE = "x-" ]; then
	$MAKEINDEX $GOPT -o out.$$  $INDICES
	$HTEX out.$$ 
	$RM $INDICES out.$$
else
	$MAKEINDEX $GOPT -o $OUTFILE.$$ $INDICES
	$ECHO "HTEX: Converting $OUTFILE.$$ into $OUTFILE"
	$HTEX $OUTFILE.$$ $OUTFILE
	$ECHO "hmakeindex: Deleting temporary $INDICES, $OUTFILE.$$..."
	$RM $INDICES $OUTFILE.$$
	$ECHO "hmakeindex: Done....."
fi

