#!/bin/sh

A2PS=/usr/bin/a2ps.bin
NKF=/usr/bin/nkf
TFILE=/tmp/a2ps-nkf.tmp
COMMAND=${0##*/}
OPTIONS=
FILE=
OUTFILE=

while [ -n "$1" ]; do
	case $1 in
		-o)
		OUTFILE="$2"
		OUTFILE="${OUTFILE%.*}"
		shift 2;;
		--output=*)
		OUTFILE="${1##*=}"
		OUTFILE="${OUTFILE%.*}"
		shift 2;;
		-[A-z]*)
		OPTIONS="$OPTIONS $1 $2"
		shift 2;;
		--[A-z]*)
		OPTIONS="$OPTIONS $1"
		shift;;
		*)
		if [ -n "$FILE" ]; then
			echo "Do not specify more then two files."
			exit 1
		fi
		FILE="$1"
		FILENAME="${FILE%.*}"
		FILETYPE=${FILE#*.}
		shift;;
	esac
done

if [ ! -f "${FILE}" ]
then
	echo "\"$FILE\": No such file or directory."
	exit 1
fi

# transrate to EUC-JP
${NKF} -Lue "${FILE}" > ${TFILE} || exit 1

[ -z "${OUTFILE}" ] && OUTFILE="${FILENAME}"
if [ x"${OUTFILE}" = x"-" ]; then
	if [ x"$COMMAND" = x"a2pdf" ]; then
	echo "a2pdf: can not use \"stdout\"."
	exit 1
	fi
else
	OPTIONS="-o ${OUTFILE}.ps ${OPTIONS}"
fi

echo $OPTIONS | grep -e "--center-title=" > /dev/null 2>&1 || \
	OPTIONS="${OPTIONS} --center-title=${FILE##*/}"
echo $OPTIONS | grep -e "--footer=" > /dev/null 2>&1 || \
	OPTIONS="${OPTIONS} --footer=${FILE}"

if [ x"$COMMAND" = x"a2ps" ]; then
	# do a2ps
	LC_ALL=ja_JP.eucJP ${A2PS} ${OPTIONS} \
		${TFILE} 2>&1 | sed -e "s,${TFILE},${FILE}," | ${NKF} -w && rm -f ${TFILE}
fi
if [ x"$COMMAND" = x"a2pdf" ]; then
	# do a2pdf
	case "${FILETYPE}" in
		tex)
		OPTIONS="$OPTIONS --delegate=no" ;;
	esac
	LC_ALL=ja_JP.eucJP ${A2PS} ${OPTIONS} \
		${TFILE} 2>&1 | sed -e "s,${TFILE},${FILE},;s,${OUTFILE}.ps,${OUTFILE}.pdf," \
		| ${NKF} -w && rm -f ${TFILE}
	## for ps2pdf
	perl -pi -e 's@^\(\) @\( \) @; s@ \(\) S$@@; s@\(\) @\( \) @g' "${OUTFILE}.ps" && \
	ps2pdf14 -sPAPERSIZE=a4 "${OUTFILE}.ps"
	#rm -f "${OUTFILE}.ps"
fi
