#!/bin/sh

# Usage: dvitops [-f] dvifile
# dvipdfmxとpdftopsの組み合わせでDVI→PSの変換を行うスクリプト
# 日本語対応のdvipsがない場合の簡易代用品を意図
# とりあえずオプションは-fのみ
# 同名の古いソフトウェア(dvitops)があるがそれとは異なる
# Public Domain.

usage(){
	echo "Usage: $0 [-f] dvifile" >&2
	exit 255
}

# オプション解析
FILTER=f
while getopts f OPTC; do
	case "$OPTC" in
	f)	FILTER=t;;
	*)	exit 255;;
	esac
done
shift `expr $OPTIND - 1`
case $# in
1)	:;;
*)	usage;;
esac

# DVIファイルの存在チェック
DVIFILE="$1"
case "$DVIFILE" in
*.dvi)	:;;
*)	DVIFILE="$DVIFILE".dvi;;
esac
if [ ! -r "$DVIFILE" ]; then
	echo "Cannot read $DVIFILE" >&2
	exit 1
fi

# DVIからPDF経由PSへ変換
dvipdfmx -o - "$DVIFILE" |
case $FILTER in
t)	pdftops - -;;
*)	TO=`expr "$DVIFILE" : '\(.*\)\.dvi'` || TO="$DVIFILE"
	TO="$TO".ps
	pdftops - "$TO";;
esac
