#
# initfis 
# 
# Fecha: 02/09/97
#

LogName=`logname`

[ $LogName = "root" ] || {
	echo "ERROR: Debe estar logueado como root para ejecutar este script"
	exit 1
}

clear

echo "Script de instalacion del programa unxfis."
echo " "
echo "El programa unxfis es el encargado de manejar la comunicacion "
echo "con el printer fiscal. Para escribir en el mismo, se utiliza"
echo "un pipe de comunicaciones, en donde se debe escribir de acuerdo"
echo "al formato (incluyendo los separadores de campo) indicado para "
echo "comando."
echo " "
echo "Este script crea los pipes de comunicaciones con el driver. "
echo "Uno de escritura y uno de lectura, el cual es utilizado para"
echo "leer el estado del printer".
echo ""
echo "NOTA: Es necesario ser root para ejecutar este script."
echo ""

PipeW="/dev/p_write"
PipeR="/dev/p_read"

MakePipe () {

	[ -r $1 ] && { 
		echo " " 
		echo "El archivo especial $1 ya existe" 
		return
	}

	mknod $1 p 2>/dev/null || {
		echo " "
		echo "Fatal: Error ejecutando mknod. "
		echo "Ha ocurrido alguno de los siguientes errores:"
		echo "- Los archivos ya existen"
		echo "- No se encuentra logueado en la cuenta de root"
		echo "- El mknod no se encuentra en el PATH"
		echo " "
		exit 1
	}

	chmod 0666 $1
}

echo " "

while [ -z "$TTYName" ] 
do
	echo "Ingrese la tty en la que va a estar conectado el impresor. "
	echo "Formato: (tty1a, tty2a, etc ... ): \c"
	read TTYName

	[ -c /dev/$TTYName ] || {
		echo "El archivo /dev/$TTYName no existe"
		TTYName=""
	}
done

echo " "

echo "Ingrese el nombre del pipe de escritura. "
echo -n "<Enter> para dejar el default (\"$PipeW\"): "
read Answer
[ -z "$Answer" ] || PipeW=$Answer
echo $PipeW

echo " "

echo "Ingrese el nombre del pipe de lectura: "
echo -n "<Enter> para dejar el default (\"$PipeR\"): "
read Answer
[ -z "$Answer" ] || PipeR=$Answer
echo $PipeR

MakePipe $PipeR
MakePipe $PipeW

echo " "

Directorio=`pwd`
echo "Ingrese el directorio en donde se encuentra el programa 'unxfis': "
echo -n "<Enter> para dejar el directorio actual (\"$Directorio\"): "
read Answer
[ -z "$Answer" ] || Directorio=$Answer
echo $Answer

clear

echo "A continuacion se instalara el driver en la tabla /etc/inittab."
echo "Cada linea de esta tabla es ejecutada por Unix en el momento del "
echo "arranque."
echo " "
echo "Si su directorio de trabajo esta en otro filesystem, este "
echo "procedimiento de arranque no funciona, dado que cuando se"
echo "ejecuta esta tabla, UNIX aun no monto el filesystem."
echo " "
echo "Como alternativa, en SCO UNIX OPENSERVER, existe un archivo "
echo "en /etc/rc.d/8 cuyo nombre es userdef, y tambien es utilizado "
echo "para disparar programas en el momento del arranque."
echo " "
echo "Para ello es necesario agregar (manualmente) lo siguiente "
echo "en este archivo: "
echo " "
echo "(suponiendo que el printer se conecta a la tty1a)" 
echo
echo "disable /dev/tty1a"
echo "[PATH_UNXFIS]/unxfis -p tty1a -i/dev/p_write -o/dev/p_read -t &"
echo " "
echo "Desea continuar con la instalacion en la tabla /etc/inittab: (s/n) ? \c"
read ans 
[ $ans != "s" ] && {
	echo "Instalacion Abortada"
	exit 
}

Comando="$Directorio/daemon/unxfis -p $TTYName -i$PipeW -o$PipeR -t &"

InitFile=/etc/conf/init.d/fis

echo " "
echo "Instalando el programa unxfis en la tabla /etc/inittab ... "
echo " "
echo "fis1:2:bootwait:disable $TTYName" > $InitFile
echo "fis2:2:boot:$Comando" >> $InitFile

# Relink del Kernel
echo "Se esta por relinkear el kernel. Desea hacerlo ahora (s/n)?: \c"
read ans

[ $ans != "s" ] && {
	rm $InitFile
	echo "Instalacion Abortada"
	exit 
}

/etc/conf/bin/idbuild

echo " "
echo "Ahora puede hacer shutdown del sistema para que los cambios"
echo "tengan efecto."
echo " "
echo "Programa Instalado."
echo " " 
