Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env bash
- # Written by kenkeiras
- # This program is free software. It comes without any warranty, to
- # the extent permitted by applicable law. You can redistribute it
- # and/or modify it under the terms of the Do What The Fuck You Want
- # To Public License, Version 2, as published by Sam Hocevar. See
- # http://sam.zoy.org/wtfpl/COPYING for more details.
- #Parámetros por defecto (casi seguro no es necesario cambiarlos)
- cdpath="/dev/cdrom" # Unidad que se usará
- cdtrue="1,0,0" # Unidad real de CD
- splitsize=900000000 # Tamaño que distinge CD's de DVD's (en Bytes)
- CDburnspeed=48 # Velocidad de grabación de CD < SplitSize
- DVDburnspeed=2 # Velocidad de grabación de DVD >= SplitSize
- ##################################################################
- str=""
- burnspeed=0
- burnOpts=""
- # Primera pantalla
- zenity --question --title "Bash Burn" --text="Elige lo que quieres hacer" \
- --ok-label="Obtener imágen de CD/DVD" --cancel-label="Grabar CD/DVD"
- i=$?
- # Texto de la selección de archivos
- if [ $i -eq 1 ];then
- str="Elige el archivo a grabar"
- else
- str="Elige donde guardar la imágen"
- # Y opciones adicionales para confirmacion al sobreescribir
- moreopt="--save --confirm-overwrite"
- fi
- # Selección de archivo
- f=$(zenity --file-selection --title="$str" $moreopt)
- # Si no se selecciono un archivo
- if [ $f"" == "" ];then
- zenity --info --text="No has seleccionado un archivo, saliendo..."\
- --title="Bash Burn"
- exit 0
- fi
- # Se comprueba el tipo de archivo si se está grabando
- if [ $i -eq 1 ]; then
- sz=`wc -c "$f"|cut -d\ -f1`
- if [ $sz"" -lt $splitsize"" ];then
- burnspeed=$CDburnspeed
- str=CD
- else
- burnspeed=$DVDburnspeed
- str=DVD
- fi
- s=`file "$f"`
- echo $s|grep -i "iso 9660" >> /dev/null
- if [ $? -eq 0 ]; then
- # Es una ISO
- burnOpts="dev=$cdtrue -tao -data -eject speed=$burnspeed $f"
- else
- zenity --info --title "Bash Burn" \
- --text="Tipo de archivo no soportado, saliendo..."
- exit 1
- fi
- fi
- # Última oportunidad para cambiar de idea
- if ! zenity --question --title "Bash Burn" \
- --text="Es la última oportunidad para parar el proceso, desea continuar?"
- then
- exit 0
- fi
- # Aquí hay algo a tener en cuenta para las progressbar...
- # dd no utiliza stdout por defecto, sino stderr, asi que
- # hay que redireccionarlo, de ahi el 2>&1 ;)
- # Además, para que la barra empieze a moverse tiene que recibir
- # datos por stdin, de ahi el (echo i;cat), que manda los datos y
- # no se cierra hasta que acabe el proceso original
- # Se crea la ISO
- if [ $i -eq 0 ]; then
- # Se limpia por si acaso
- rm -f "$f"
- # Se lee el CD
- dd if="$cdpath" of="$f" 2>&1|(echo i;cat)|zenity --progress --pulsate\
- --title "Bash Burn [copiando]" --text="Copiando a $f" --auto-close \
- --auto-kill
- else
- sudo cdrecord $burnOpts|(echo i;cat)|zenity --progress --pulsate\
- --title "Bash Burn [grabando]" --text="Grabando $f a $str" --auto-close\
- --auto-kill
- fi
- notify-send "Bash Burn" "Operación finalizada"
- zenity --info --title "Bash Burn [Finalizado]" --text "Finalizado, comprueba el disco por si acaso"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement