domingo, 3 de mayo de 2009

Acciones Nautilus para convertir ficheros de imagen a ISO

Shell Script

Vamos a crear un script de shell que haga el proceso, ayudándonos del paquete mdf2iso y de zenity, que contiene el comando gdialog, para mostrar los diálogos que se necesitan.

Creamos el script al que llamaremos convert2iso.sh en ~/bin, con el siguiente contenido:
convert2iso.sh
#!/bin/sh
# comprobamos que existan los paquetes que necesitamos
[ ! -f `which mdf2iso` ] && echo "Se necesita el paquete mdf2iso. Ejecute sudo apt-get install mdf2iso zenity." && exit 1
[ ! -f `which gdialog` ] && echo "Se necesita el paquete zenity. Ejecute sudo apt-get install mdf2iso zenity." && exit 1
# parámetros
SOURCE=$1
shift
TARGET=$@
[ -z "$TARGET" ] && TARGET="${SOURCE}.iso"
# obtenemos nombre del fichero
TARGET=$(gdialog --title "Convertir a ISO" --inputbox "Nombre del fichero destino:" 100 100 "${TARGET}" 2>&1)
if [ -z "$TARGET" ]; then
exit 1
else
gdialog --title "Advertencia" --yesno "Se va convertir el fichero $SOURCE en $TARGET. ¿Desea continuar?" 100 100
if [ $? -eq 0 ]; then
mdf2iso $SOURCE $TARGET
gdialog --title "Resultado de la operación" --m
sgbox "El fichero ha sido convertido a ISO" 100 100
else
gdialog --title "Resultado" --msgbox "Se ha cancelado la operación." 100 100
fi
fi

Como podemos ver, el script se encarga de recoger un primer parámetro con la ruta al fichero MDF o BIN a convertir (#8), y un segundo parámetro opcional con el fichero destino (#9-11), que en la acción nautilus no vamos a utilizar.

Con gdialog mostramos una ventana de diálogo para que el usuario introduzca el nombre del fichero destino (#14). Si introdujo un texto (#15) continuamos, y pedimos confirmación de nuevo con la ayuda de gdialog (#18). Si se produce la confirmación ejecutamos el comando mdf2iso, y mostramos otra ventana de diálogo confirmando la finalización del proceso.

Le damos permisos de ejecución a nuestro script con:

$ chmod +x ~/bin/convert2iso.sh

Acción Nautilus

Ahora abrimos nautilus-actions, que se encuentra en Sistema - Preferencias - Configuración de acciones de Nautilus.





Pulsamos el botón Añadir, y en la pestaña "Elementos del menú y acción" rellenamos los campos con estos valores:

  • Etiqueta: Convertir a ISO
  • Consejo: No a las drogas!
  • Icono: gtk-cdrom
  • Ruta: ~/bin/convert2iso.sh (o mejor aún: /home/tu_usuario/bin/convert2iso.sh).
  • Parámetros: %M

En la pestaña "Condiciones":

  • Filenames: *.bin; *.mdf

Y en la pestaña "Advanced Conditions" seleccionamos "Archivos locales file". Aceptamos, y reiniciamos Nautilus. Buscamos un fichero BIN o MDF, le damos al botón derecho, y voila!



Exitos.!