#!/bin/sh

##################################################################################
##										##
##			Script queimador de ISOs				##
##										##
## Realizado por: Antonio Sanchez «guadafan» <introlinux@gmail.com> e		##
##		  Miguel Anxo Bouzada «miguelbf» <mbouzada@gmail.com>		##
## Para: GALPon MiniNo <minino@galpon.org>					##
## Licencia: Este script divulgase SEN NINGUNHA GARANTÍA e baixo a licenza	##
## pública xeral GPL/GNU	 						##
##										##
## Dependencias: cdrskin → que a su vez depende de: libisofs(6) y libburn(4)	##
##               xdialog							##
##										##
##################################################################################

case $LANG in
	es*)
		TIT1="IMPORTANTE"
		MSG1="Si utiliza discos regrabables\n\
			y si tienen algún contenido\n\
			serán borrados automáticamente.\n\n
			Asegurese de que utiliza el disco correcto.\n\n
			¿Desea continuar?"
		TIT2="Grabar imágenes .iso CD/DVD"
		MSG2="Velocidad de grabación"
		MSG3="Seleccione"
		TIT3="Grabando..."
		MSG4="Por favor espere...
			\nEsta tarea puede tardar varios minutos.\n"
		TIT4="X-burn-iso"
		MSG5="Grabación finalizada.
			\nYa puede retirar el disco."
		MSG6="Hay un disco en el dispositivo:\n     "			
		MSG7="montado en:\n     "
		MSG8="¿Es correcto?"
		MSG9="\nNo hay ningún disco en el grabador.
			\nRecuerde: Si tiene más de una unidad de CD, el disco a grabar debe estar en la primera unidad (ó predeterminada) del sistema.
			\n"
		LBL1="Reintertar"
		LBL2="Salir"
		;;
	gl*)
		TIT1="IMPORTANTE"
		MSG1="Si utiliza discos regravabeis\n\
			e si teñen algún contido\n\
			serán borrados automáticamente.\n\n\
			Asegurese de que utiliza o disco correcto.\n\n\
			Desexa continuar?"
		TIT2="Gravación de imaxes .iso CD/DVD"
		MSG2="Velocidade de gravación"
		MSG3="Seleccione"
		TIT3="Gravando..."
		MSG4="Por favor agarde...\n\n\
			Esta tarefa pode tardar varios minutos.\n"
		TIT4="X-burn-iso"
		MSG5="Gravación finalizada.
			\nXa pode retirar o disco."
		MSG6="Hai un disco no dispositivo:\n     "
		MSG7="montado en:\n     "
		MSG8="É correcto?"
		MSG9="\nNon hai ningún disco no gravador.
			\Lembre: Se ten máis de unha unidade de CD, o disco a gravar debe estar na primeira unidade (ou predeterminada) do sistema.
			\n"
		LBL1="Reintertar"
		LBL2="Saír"
		;;
	*)
		TIT1="WARNING"
		MSG1="If you use rewritable discs and if\n\
			they have some content will be deleted\n\
			automatically.\n\n \
			Make sure you use the correct disc.\n\n\
			Continue?"
		TIT2="Record images .iso CD/DVD"
		MSG2="Speed Record"
		MSG3="Select"
		TIT3="Recording..."
		MSG4="Please wait...\n\n\
			This may take several minutes.\n"
		TIT4="X-burn-iso"
		MSG5="Grabación finalizada.
			\nYa puede retirar el disco."
		MSG6="Hay un disco en el dispositivo:\n     "			
		MSG7="montado en:\n     "
		MSG8="¿Es correcto?"
		MSG9="\nNo hay ningún disco en el grabador.
			\nRecuerde: Si tiene más de una unidad de CD, el disco a grabar debe estar en la primera unidad (ó predeterminada) del sistema.
			\n"
		LBL1="Reintertar"
		LBL2="Quit"
		;;
esac

## Comprobamos si existe un CD no gravador

COMPARA=$(mount -i | grep cd)
DISPOSITIVO=`echo $COMPARA | awk --source 'BEGIN { FS=" " }' --source '{ print $1 }'`	# $DISPOSITIVO é a ruta /dev/dispositivo
NULO=`echo $COMPARA | awk --source 'BEGIN { FS=" " }' --source '{ print $2 }'`		# valor non usado (corresponde a "on"
MONTAXE=`echo $COMPARA | awk --source 'BEGIN { FS=" " }' --source '{ print $3 }'`	# $MONTAXE é a ruta /media/cdromX


if [ $DISPOSITIVO != "" ]; then
	Xdialog --title "$TIT1" --left\
		--icon $HOME/.icewm/icons/cd.xpm \
		--yesno "$MSG6 $DISPOSITIVO\n$MSG7 $MONTAXE\n$MSG8" 0 0
	if [ $? != 0 ]; then
		exit
	else

		Xdialog --title "$TIT1" --fill \
			--icon $HOME/.icewm/icons/danger.xpm \
			--yesno "$MSG1" 0 0 

		case $? in
			0)
				veloc=$(Xdialog --title "$TIT2" \
					--icon $HOME/.icewm/icons/cd.xpm \
					--spinbox "$MSG2" \
					0 0 1 24 4 "$MSG3" 2>&1)
		
				if [ -z "$veloc" ]
					then
		    				exit
				fi
#	pumount $montaje 
				cdrskin -v -blank=as_needed -eject -speed=$veloc "$@" | \
					Xdialog --title "$TIT3 `basename $@` ..." \
						--icon $HOME/.icewm/icons/grabando48.xpm \
						--no-ok --tailbox  - 20 50 - | \
					Xdialog --title "$TIT3 `basename $@` ..." \
						--icon $HOME/.icewm/icons/grabando48.xpm \
						--progress "$MSG4" 0 0 100 - &&\
#					pumount $montaje &&
#					eject | \
					Xdialog --title "$TIT4" \
						--icon $HOME/.icewm/icons/drive.xpm \
						--msgbox "$MSG5" 0 0
				;;
			1)
				exit #NO
				;;
			255)
				exit #ESC
				;;
		esac
	fi
	
else
	Xdialog --title "$TIT1" --fill --ok-label "$LBL1" --cancel-label "$LBL2" \
		--icon $HOME/.icewm/icons/importante.xpm \
		--yesno "$MSG9" 0 0 30000
		if [ $? != 0 ]; then
			exit
		else
			$HOME/minino_X-burn-iso.sh
			## Para su ubicación definitiva en /usr/local/bin debe ser suficiente con:
			# minino_X-burn-iso.sh
		fi
fi

##########################################################################################
##											##
##					===========					##
##					-- NOTAS --					##
##					===========					##
##											##
## Para empregar un deslizador de "rango" na selección de velocidade substituir:	##
## --spinbox por --rangebox (arredor da liña 114 no orixinal de MiniNo)			##
##											##
## case $? in										##
##   0)											##
##     veloc=$(Xdialog --title "$TIT2" \						##
## 		    --rangebox "$MSG2" \	Liña de substitución			##
## 		    0 0 1 24 4 "$MSG3" 2>&1)						##	##											##
##					===========					##
##											##
## no canto de --tailbox (equivalente a "tail -f") podese empregar tamén --logbox 	##
## liña exemplo (--time-stamp é opcional):						##
## cdrskin -v -blank=as_needed -eject -speed=$veloc "$@" | \				##
##		Xdialog --title "$TIT3 `basename $@` ..." \				##
##		--no-ok --time-stamp --logbox  - 20 50					##
## O guión "-" (ou símbolo "menos") na posición nome_ficheiro da ventá --tailbox	##
## é un comodin para ler de "Xdialog stdin"						##
##											##
## Outra posible estructura, xerando un temporal e lendo del				##
## cdrskin -v -dummy -speed=$veloc "$@" > /tmp/cdrskin.log | \				##
##		Xdialog --title "$TIT3 `basename $@` ..." \				##
##		--tailbox /tmp/cdrskin.log 20 50					##
##											##
##########################################################################################
