#!/bin/sh
#  Program do wydruku lokalnego dla emulatora terminala A-Term
#  03.08.2001
#  www.jtsoft.com.pl
#  jtsoft@jtsoft.com.pl

PATH=/bin:/usr/bin

tty -s && TTY=`tty`
tty -s || TTY='/dev/tty'
COMM_START=''
COMM_STOP=''
STTY=`stty -g < $TTY`

if [ `uname` = 'Linux' ]
then 
    ECHO="echo -en"
else
    ECHO="echo -n"
fi

case $TERM in
	"ansi"|"scoansi"|"vt220"|"linux")
		COMM_START=\\033[5i
		COMM_STOP=\\033[4i;;
	"wyse60"|"wy60")
	        COMM_START=\\033d#
		COMM_STOP=\\024;;
	*)
	        echo "Nieznany typ terminala: $TERM. (Nie umiem na taki drukowac...)">&2
		exit 1;;
esac                                

if [ $# -lt 1 ]                                     
then                                                
        echo "Uzycie: $0 [-t terminal] [-u uzytkownik] [-d numer_drukarki] nazwa(y)_pliku(ow)_do_drukowania" 
        exit 1                                       
else
	while [ $# -gt 0 ]
	do 
		case $1 in
		-t) 	
			shift 1
		    	TTY=$1
			if [ ! -w $TTY ]
			then
				echo "Plik $TTY nie istnieje lub prak praw zapisu"
				exit 1
			fi;;
		-u) 	
			shift 1
			TTY=`who|sed -n "/^$1 /s/[^ ]* *\([^ ]*\).*/\1/p"|head -n 1`
			if [ ! -w $TTY ] 
			then
				TTY=/dev/$TTY
				if [ ! -w $TTY ]
				then
					echo "Plik $TTY nie istnieje lub brak praw zapisu" 
					exit 1
				fi
			fi;;
		-d) 	shift 1
			if [ $1 -gt 4 -o $1 -lt 1 ]
			then
				echo "Numer drukarki domyslnej znajduje sie w przedziale 1-4"
				exit 1
			fi

			case $TERM in
				"ansi"|"scoansi"|"vt220"|"linux")
					COMM_START=\\033[`expr $1 + 4`i;;
				"wyse60"|"wy60")
				        if [ $1 -eq 1 ]
					then
						COMM_START=\\033d#
					else
						COMM_START=\\033d$1
					fi;;
				*)
				        echo "Nieznany typ terminala: $TERM. (Nie umiem na taki drukowac...)">&2
					exit 1;;
			esac;; 

		*)
			$ECHO $COMM_START>$TTY
			stty -opost < $TTY
			cat "$*">$TTY
			stty $STTY < $TTY
			$ECHO $COMM_STOP>$TTY;;
		esac
		shift 1 
	done
fi
                                                  
