#!/bin/sh
# bjc.psfilter
# Canon BJC-600J用PostScriptフィルタプログラム
# PostScriptファイル --------> イメージビットマップ
#			GS
#		-------------> パラレルポート /dev/bpp0	
#			cat
#
#IFS=""; export IFS
PATH=/usr/local/sbin:/usr/local/bin:$PATH
LD_LIBRARY_PATH=/usr/openwin/lib
export PATH LD_LIBRARY_PATH GS_LIB
unset LANG

pname=`basename $0`
exit_code=128

# 一時ファイル
# TMPDIR=/var/spool/lp/temp
TMPDIR=/tmp
OF=$TMPDIR/$pname.$$.bjcraw
PARAMFILE=bjc610a1.upp
PARAMDIR=/usr/local/share/ghostscript/5.03

# lp.catは生ファイルをそのまま書き出すフィルタ(らしい)。
#LPCAT=/usr/lib/lp/bin/lp.cat
LPCAT=cat

# SIGINTが発行されたときの後始末
trap '/bin/rm -f $TMPDIR/$pname.$$.*; exit 2' 2

# ここからが主処理
# 利用するパラメタファイルを選択する
case $1 in
-draft)	PARAMFILE=bjc610a0.upp ;;
-ohp)	PARAMFILE=bjc610a3.upp ;;
esac

# 標準入力をGhostscriptに読ませて処理させる。
#echo gs -q @$PARAMDIR/$PARAMFILE -sOutputFile=$OF - -c quit 1>&2
gs -q @$PARAMDIR/$PARAMFILE -sOutputFile=$OF - -c quit
status=$?

# エラーが出たときはその旨を報告する。
if [ $status != 0 ]; then
  rm -f $OF	# even if $OF does not exist
  echo "$pname: Ghostscript could not complete PS to BJC-600 conversion" 1>&2
  exit $exit_code
elif [ ! -f $OF ]; then
  echo "$pname: Ghostscript could not complete PS to BJC-600 conversion" 1>&2
  echo "$pname: (but Ghostscript finished normally)" 1>&2
  exit $exit_code
fi

# 出来上がったファイルを標準出力に書き出す。
$LPCAT $OF
status=$?

# 後始末
rm -f $OF

# エラーが出たときはその旨を報告する。
if [ $status != 0 ]; then
  echo "$pname: $LPCAT could not complete data transfer" 1>&2
  exit $exit_code
fi

exit 0
# eof
