#!/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"			
		MSG7="montado en:"
		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"
		MSG7="montado en:"
		MSG8="É correcto?"
		MSG9="\nNon hai ningún disco no gravador.
			\nRecorde: 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"
		;;
	pt_PT*)
		TIT1="IMPORTANTE"
		MSG1="Se você usa discos regraváveis\n \
			e se tiverem alguns conteúdos\n \
			serão apagados automaticamente.\n\n \
			Certifique-se de usar o disco correto.\n\n \
			Continuar?"
		TIT2="Gravar imagens .iso CD/DVD"
		MSG2="Velocidade de gravación"
		MSG3="Selecione"
		TIT3="Gravando..."
		MSG4="Por favor aguarde...\n\n \
			Esta tarefa pode levar varios minutos.\n"
		TIT4="X-burn-iso"
		MSG5=""
		MSG6=""
		MSG7=""
		MSG8=""
		MSG9=""
		;;
	fr_FR)
		TIT1="IMPORTANT"
		MSG1="Si vous utilisez des disques réinscriptibles,\n \
			et si elles ont un certain contenu\n \
			sera automatiquement supprimé.\n\n \
			Assurez-vous d'utiliser le bon disque.\n\n \
			Continuer?"
		TIT2="Enregistrer les images .iso CD/DVD"
		MSG2="Velocidade de gravación"
		MSG3="Sélectionnez"
		TIT3="Enregistrant..."
		MSG4="S'il vous plaît patienter...\n\n \
			Cette mai prendre plusieurs minutes.\n"
		TIT4="X-burn-iso"
		MSG5=""
		MSG6=""
		MSG7=""
		MSG8=""
		MSG9=""
		;;
	*)
		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=""
		MSG6=""
		MSG7=""
		MSG8=""
		MSG9=""
		;;
esac

## Comprobamos si existe un CD no gravador
## Para ver os parámetros correspondentes a cada distro, ver nota ao pé

COMPARA=$(mount -i | grep cd)
compara=${COMPARA:0:8} 		# $compara é a ruta /dev/dispositivo
montaxe=${COMPARA:12:13} 	# $montaxe é a ruta /media/cdromX

if [ $compara != "" ]; then
	Xdialog --title "$TIT1" --left\
		--icon $HOME/.icewm/icons/cd.xpm \
		--yesno "$MSG6 $compara\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 --					##
##					===========					##
##											##
## COMPARA=$(mount -i | grep cd)							##
## compara=${COMPARA:0:8} 	# $compara é a ruta /dev/dispositivo			##
## montaxe=${COMPARA:12:13} 	# $montaxe é a ruta /media/cdromX			##
##											##
## nova_variable${VARIABLE:inicio:fin}							##
##											##
## En Debian (se hai CD) a orde "mount -i | grep cd" devolve unha saída como:		##
## 	/dev/hdc on /media/cdrom0 type iso9660 (ro,noexec,nosuid,nodev,user=minino)	##
##	1234567891111      (comeza no primeiro ou 0 e remata 8 posicións despois)	##
##		 0123      (nota, debera comezar no 13 pero faino no _anterior_)	##
##											##
##	            1234567891111 (comeza no 12 e remata 13 posicións despois		##
##	                     0123							##
##											##
## En Ubuntu (se hai CD a orde "mount -i | grep cd" devolve unha saída como:		##
## 	/dev/scd0 on /media/cdrom0 type iso9660 (ro,nosuid,nodev,utf8,user=usuario)	##
##	12345678911111     (comeza no primeiro ou 0 e remata no 9 posicións despois)	##
##		 01234									##
##											##
##	             1234567891111 (comeza no 14 e remata  13 posicións despois)	##
##	                      0123							##	##											##
##					===========					##
## 											##
## Para empregar un deslizador de "rango" na selección de velocidade substituir:	##
## --spinbox por --rangebox (arredor da liña 147 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					##
##											##
##########################################################################################
