Taller Ubuntu: acción Nautilus para convertir ficheros de imagen a ISO

Ya hablé de nautilus-actions, una utilidad para añadir acciones al menú contextual de Nautilus, el administrador de ficheros de Gnome. Y en esta ocasión lo vamos a utilizar para añadir la acción de convertir una imagen de CD en formato BIN/CUE o MDF a ISO.

Shell Script 

Para ello, primero deberemos 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 convert2iso.sh en ~/bin, con el siguiente contenido:

convert2iso.sh
  1. #!/bin/sh
  2.  
  3. # comprobamos que existan los paquetes que necesitamos
  4. [ ! -f `which mdf2iso` ] && echo "Se necesita el paquete mdf2iso. Ejecute sudo apt-get install mdf2iso zenity." && exit 1
  5. [ ! -f `which gdialog` ] && echo "Se necesita el paquete zenity. Ejecute sudo apt-get install mdf2iso zenity." && exit 1
  6.  
  7. # parámetros
  8. SOURCE=$1
  9. shift
  10. TARGET=$@
  11. [ -z "$TARGET" ] && TARGET="${SOURCE}.iso"
  12.  
  13. # obtenemos nombre del fichero
  14. TARGET=$(gdialog --title "Convertir a ISO" --inputbox "Nombre del fichero destino:" 100 100 "${TARGET}" 2>&1)
  15. if [ -z "$TARGET" ]; then
  16. exit 1
  17. else
  18. gdialog --title "Advertencia" --yesno "Se va convertir el fichero $SOURCE en $TARGET. ¿Desea continuar?" 100 100
  19. if [ $? -eq 0 ]; then
  20. mdf2iso $SOURCE $TARGET
  21. gdialog --title "Resultado de la operación" --msgbox "El fichero ha sido convertido a ISO" 100 100
  22. else
  23. gdialog --title "Resultado" --msgbox "Se ha cancelado la operación." 100 100
  24. fi
  25. 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.

nautilusactionscut_400 

 

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 consumas pron!
  • 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!

nautilusactionsconvert2iso 

 ¿Quién ha dicho que el software libre no es maravilloso? ;)

5 comentarios

  1. Ante todo gracias por el tutorial.
    he seguido los pasos, pero al dar los permisos de ejecución con
    $ chmod x ~/bin/convert2iso.sh
    me sale lo siguiente
    modo inválido: «x»
    Pruebe `chmod –help’ para más información.

    y no consigo que funcione. Si me puedes ayudar te lo agradecería

    Un saludo

  2. gracias por contestar tan pronto.
    Ya no me da error, pero no funciona.
    Te digo los pasos que he seguido:
    1. Crear un documento nuevo en /home/mi_usuario/bin, darle la terminación sh, abrirlo con un editor de texto y pegarle el contenido que indicas arriba.
    2.- después he seguido todos los pasos, pero al ir a un archivo mdf, no me aparece la opción en el menú contextual.
    Gracias

Escribe un comentario

*