#!/bin/bash

##################################################################################
##										##
##		Script para conexións por infravermello				##
##										##
## Realizado por: Miguel Anxo Bouzada «miguelbf» <mbouzada@gmail.com>		##
## Para: GALPon MiniNo <minino@galpon.org>					##
##										##
## Debe executarse con permisos de root (su, sudo, gksu, gksudo)		##
##										##
## Licencia: Este script divulgase SEN NINGUNHA GARANTÍA e baixo a licenza	##
## pública xeral GNU/GPL							##
##										##
## Dependencias: ircp								##
##               irda-utils							##
##		 xdialog							##
##										##
##################################################################################

case $LANG in
	es*)
		TIT1="Puerto de infrarrojos"
		TIT2="Activando"
		TIT3="Activar"
		TIT4="Recibir po IR"
		TIT5="Recibiendo"
		TIT6="Recibir"
		TIT7="Enviar por IR"
		TIT8="Enviando"
		TIT9="Enviar"

		MSG1="¿Quiere activar el puerto infrarrojos irda0?"
		MSG2="Espere por favor"
		MSG3="Sistema de infrarrojos activado."
		MSG4="Seleccione la tarea que quiere realizar"
		MSG5="Recibir archivos por infrarrojos"
		MSG6="Enviar archivos por infrarrojos"
		MSG7="¿Está preparado el emisor?"
		MSG8="Archivo recibido."
		MSG9="\nPara volver al selector de tareas haga clic en: \"Continuar\""
		MSG10="Fichero a enviar."
		MSG11="Si el fichero está alojado en su carpeta personal la sintáxis es:
				>    [ fichero.ext ]
				>    Ejemplo: foto-001.png
				\nSi está alojado en otro directorio debe indicar la ruta completa
				>    Ejemplo: ~/Mis_Fotos/foto-001.png"

		MSG12="Archivo enviado."
		
		LBL1="Continuar"
		LBL2="Salir"

		WAR1="no se encuentra «/usr/sbin/irattach»...
			\nComo administrador (root ó sudo) ejecute:
			apt-get install irda-utils"
		WAR2="no se encuentra «/usr/bin/ircp...
			\nComo administrador (root ó sudo) ejecute:
			apt-get install ircp"
		;;
	gl)
		TIT1="Porto de infravermellos"
		TIT2="Activando"
		TIT3="Activar"
		TIT4="Recibir po IR"
		TIT5="Recibindo"
		TIT6="Recibir"
		TIT7="Seleccionar"
		TIT8="Enviando"
		TIT9="Enviar"


		MSG1="Quere activar o porto infravermellos irda0?"
		MSG2="Agarde por favor"
		MSG3="Sistema de infravermellos activado."
		MSG4="Seleccione a tarefa que quere realizar"
		MSG5="Recibir ficheiros por infravermellos"
		MSG6="Enviar archivos por infravermellos"
		MSG7="Está preparado o emisor?"
		MSG8="Ficheiro recibido."
		MSG9="\nPara volver ao selector de tarefas faga clic en: \"Continuar\""
		MSG10="Ficheiro a enviar."
		MSG11="Se ol ficheiro está aloxado no seu cartafol persoal a sintaxe é:
				>    [ ficheiro.ext ]
				>    Exemplo: foto-001.png
				\nSe está aloxado noutro directorio debe indicar a ruta completa
				>    Exemplo: ~/Miñas_Fotos/foto-001.png"

		MSG12="Ficheiro enviado."
		
		LBL1="Continuar"
		LBL2="Saí"

		WAR1="no se atopa «/usr/sbin/irattach»...
			\nComo administrador (root ou sudo) execute:
			apt-get install irda-utils"
		WAR2="no se atopa «/usr/bin/ircp...
			\nComo administrador (root ou sudo) execute:
			apt-get install ircp"
		;;
	*)
		TIT1=""
		MSG1=""
		;;
esac

# Comprobamos la existencia de irattach (irda-utils)
if ! [ -f /usr/sbin/irattach ] ; then
   Xdialog --title "$TIT1" --icon $HOME/.icewm/icons/danger.xpm --msgbox "$WAR1" 0 0
   exit 0
fi

# Comprobamos la existencia de ircp
if ! [ -f /usr/bin/ircp ] ; then
   Xdialog --title "$TIT1" --icon $HOME/.icewm/icons/danger.xpm --msgbox "$WAR2" 0 0
   exit 0
fi

# Preguntamos si ya está levantada la herramienta (buscamos un módulo creado por "/usr/sbin/irattach irda0 -s").
# Si no existe /sys/module/irda/initstate ó refcnt procedemos a habilitar el puerto, si existe es que ya está habilitado.

if ! [ -f /sys/module/irda/refcnt ] ; then
	# Preguntamos si se quiere iniciar la heramienta
	Xdialog --title "$TIT1" --fill --ok-label "$LBL1" --cancel-label "$LBL2" \
			--icon $HOME/.icewm/icons/duda.xpm \
			--yesno "$MSG1" 0 0 -
	case $? in
		0)
#			Xdialog --title "$TIT2" --icon $HOME/.icewm/icons/ircp.xpm \
#					--tailbox /var/log/user.log 0 0 |
#			Xdialog --title "$TIT2" --icon $HOME/.icewm/icons/ircp.xpm \
#					--progress "$MSG2" 0 0 100 /var/log/user.log | 
			sudo /usr/sbin/irattach irda0 -s  &&
			Xdialog --title "$TIT3" --fill --ok-label "$LBL1" --cancel-label "$LBL2" \
					--icon $HOME/.icewm/icons/ircp.xpm \
					--yesno "$MSG3" 0 0 -
			case $? in
				0)
					modo=0
					;;
				1) exit ;;
				255) exit ;;
			esac
			;;
		1) exit ;;
		255) exit ;;	
	esac
else
	modo=0
fi

while [ "$modo" = 0 ]; do
	modo=$(	Xdialog --title "$TIT1" --no-tags \
		--ok-label "$LBL1" --cancel-label "$LBL2" \
		--icon $HOME/.icewm/icons/ircp.xpm \
		--radiolist "$MSG4" 0 0 3 \
		"r" "$MSG5"	off \
		"e" "$MSG6"	off 2>&1)
	case $modo in
		r)
			Xdialog --title "$TIT4" --yesno "$MSG7" 0 0 -
			case $? in
				0)
					Xdialog --title "$TIT5" --icon $HOME/.icewm/icons/ircp.xpm \
						--tailbox /var/log/user.log 0 0 - |
					Xdialog --title "$TIT5" --icon $HOME/.icewm/icons/ircp.xpm \
						--progress "$MSG2" 0 0 100 /var/log/user.log &&
              				sudo /usr/bin/ircp -r
					Xdialog --title "$TIT6" --backtitle "$MSG8" --fill \
						--ok-label "$LBL1" --cancel-label "$LBL2" \
						--icon $HOME/.icewm/icons/ircp.xpm \
						--yesno "$MSG9" 0 0
					case $? in
						0)
							modo=0
							;;
						1) exit ;;
						255) exit ;;
					esac
					;;
				1) exit ;;
				255) exit ;;
 			esac
			;;
		e)
			Xdialog --title "$TIT7" --backtitle "$MSG10" --left \
					--ok-label "$LBL1" --cancel-label "$LBL2" \
					--icon $HOME/.icewm/icons/ircp.xpm \
					--inputbox "$MSG11" 0 0;\
			case $? in
				0)
					Xdialog --title "$TIT8" --icon $HOME/.icewm/icons/ircp.xpm \
						--tailbox /var/log/user.log 0 0 - |
					Xdialog --title "$TIT8" --icon $HOME/.icewm/icons/ircp.xpm \
						--progress "$MSG2" 0 0 100 /var/log/user.log &&
					sudo /usr/bin/ircp $?
#					Xdialog --tailbox /var/log/user.log 350x89 2000
					Xdialog --title "$TIT9" --backtitle "$MSG12" --fill \
						--ok-label "$LBL1" --cancel-label "$LBL2" \
						--icon $HOME/.icewm/icons/ircp.xpm \
						--yesno "$MSG9" 0 0
					case $? in
						0)
							modo=0
							;;
						1) exit ;;
						255) exit ;;
					esac
					;;
				1) exit ;;
				255) exit ;;
			esac
			;;
		1) exit ;;
		255) exit ;;	
	esac
done

