#!/bin/bash # -- Declaracion de constantes -- TITULO="..aDiKcIoN.." # -- Inicializacion de variables -- SALIR="no" VOLVER="no" SECCION="" ALTO_DIALOG="7" ANCHO_DIALOG="30" ALTO_MENU="21" ANCHO_MENU="62" ANCHO="78" ALTO="24" MSG=" \n\t\t\t\033[40m\033[37m Cortesia del\033[40m\033[1;37m ..sR. aDiKtO.. \033[0m\n" #------------------------------------------------------------------------ #-------------------------- MENU MUSICA --------------------------------- #------------------------------------------------------------------------ function MUSICA () { VOLVER="no";SALIR="no";SECCION="Musica" dialog --clear --title "$TITULO" \ --menu " \n\ Elige una opción:" "14" "$ANCHO_MENU" "6" \ "Copiar CD" "Leer un cd entero y luego grabarlo" \ "Leer canciones" "Eliges las canciones k kieres grabar" \ "Grabar" "Grabar canciones k tienes en el hd" 2> /tmp/menu.tmp.$$ retval=$? opcion=`cat /tmp/menu.tmp.$$` rm -f /tmp/menu.tmp.$$ #---------------------------------------------------------------------------------------------------------- case $retval in 0)case $opcion in 'Copiar CD') dialog --title "$TITULO" --msgbox "\nIntroduzca el CD k kieres copiar y pulse " "$ALTO_DIALOG" "$ANCHO_DIALOG" mkdir $HOME/.temp 2>/dev/null cd $HOME/.temp if cdda2wav -B -D $GRAB -s -x then sleep 1 dialog --msgbox "Introduzca el CD virgen y pulse " "$ALTO_DIALOG" "$ANCHO_DIALOG" sleep 1 if cdrecord -v speed=$VEL dev=$DEV -pad -audio *.wav then sleep 1 else dialog --msgbox "ERROR: No se ha podido grabar" "$ALTO_DIALOG" "$ANCHO_DIALOG" fi else dialog --msgbox "ERROR: No se ha podido leer ningun CD" "$ALTO_DIALOG" "$ANCHO_DIALOG" fi cd rm -rf $HOME/.temp 2>/dev/null ;; #---------------------------------------------------------------------------------------------------------- 'Leer canciones')dialog --title "$TITULO" --msgbox "\nAun no está esta función" "$ALTO_DIALOG" "$ANCHO_DIALOG" ;; #---------------------------------------------------------------------------------------------------------- 'Grabar')dialog --title "$TITULO" --msgbox "\nAun no está esta función" "$ALTO_DIALOG" "$ANCHO_DIALOG" ;; 'Volver') VOLVER="si" ;; 'Salir') VOLVER="si";SALIR="si" ;; esac ;; 1)VOLVER="si";; 255) SALIR="si" esac } #------------------------------------------------------------------------ #-------------------------- MENU DATOS ---------------------------------- #------------------------------------------------------------------------ function DATOS () { VOLVER="no";SALIR="no";SECCION="datos" dialog --clear --title "$TITULO" \ --menu "\nYa sabes de k va esto, eliges una opcion y pulsas "\ "10" "63" "2" \ "CDrom" "Leer el CD y luego grabarlo"\ "Disco Duro" "Grabar archivos del disco duro" 2> /tmp/menu.exp.tmp.$$ retval=$? opcion=`cat /tmp/menu.exp.tmp.$$` rm -f /tmp/menu.exp.tmp.$$ case $retval in 0)case $opcion in #---------------------------------------------------------------------------------------------------------- 'CDrom') dialog --title "$TITULO" --msgbox "\n Intruzca el CD k kieres grabar y pulsa " "6" "45" if dd if=$GRAB of=/tmp/imagen.iso &>/dev/null then dialog --title "$TITULO" --msgbox "\n El CD ya se ha leido, introduzca ahora el CD virgen y pulse " "8" "45" sleep 1 if cdrecord -v speed=$VEL dev=$DEV -eject /tmp/imagen.iso 2>/dev/null then dialog --title "$TITULO" --menu "\nImagen grabada perfetamente" "10" "63" "1" "Eliminar la imagen de tu hd (/tmp/imagen.iso)" "" >/tmp/menu.tmp.$$ retval=$? opcion=`cat /tmp/menu.tmp.$$` rm -f /tmp/menu.tmp.$$ case $retval in 0)case $opcion in 'Eliminar la imagen de tu hd (/tmp/imagen.iso)') rm -f /tmp/imagen.iso 2>/dev/null dialog --title "$TITULO" --msgbox "\n Imagen eliminada" "8" "40" ;; esac ;; 1)VOLVER="si";; 255)VOLVER="si";SALIR="si";; esac VOLVER="si" else dialog --title "$TITULO" --msgbox "\n ERROR: El CD no se ha grabado" "6" "35" fi else dialog --title "$TITULO" --msgbox "\n ERROR: El CD no se ha leido" "6" "33" fi ;; #---------------------------------------------------------------------------------------------------------- 'Disco Duro') VOLVER="no";SALIR="no" function seleccion () { cd / echo >/tmp/pos url=$(echo "/") opc = "y" until test $opc = n 2>/dev/null do ls > /tmp/adikcion echo -e "cd $url" > /tmp/adk echo -e "dialog --title \"$TITULO\" --menu \"\\nIndica k archivo/s kieres grabar/añadir:\\n\\n\" \"20\" \"50\" \"10\" \\" >> /tmp/adk aux=$(awk '{print "\""$1"\"" "\t\t\t" "\"" "\""}' /tmp/adikcion) echo $aux "2> /tmp/menu.exp.tmp.\$\$" >> /tmp/adk echo -e "retval=\$?" >> /tmp/adk echo -e "opcion=\`cat /tmp/menu.exp.tmp.\$\$\`" >> /tmp/adk echo -e "rm -f /tmp/menu.exp.tmp.\$\$" >> /tmp/adk echo -e "case \$retval in" >> /tmp/adk echo -e "0)case \$opcion in" >> /tmp/adk awk '{printf "\047"$1"\047"")" " cd " "\""$1"\"" "\n" ";;""\n"}' /tmp/adikcion >> /tmp/adk echo -e "esac \n ;; \n 1) echo si > /tmp/pos ;; \n 255) echo si > /tmp/pos ;; \nesac\nurl=\$(pwd)\necho \$url > /tmp/ru\necho \$opcion > /tmp/ar" >> /tmp/adk chmod 777 /tmp/adk /tmp/adk 2>/dev/null url=$(more /tmp/ru) pwd=$(pwd) pos=$(more /tmp/pos 2>/dev/null) if test "$pos" = "si" then if test $url = "/" then VOLVER="si" opc=$(echo n) break else cd .. echo > /tmp/pos url=$(pwd) fi else if test $url != $pwd then cd $url 2>/dev/null else opc=$(echo n) fi fi done aux=$(more /tmp/ar) echo $url/$aux > /tmp/ar } mkdir $HOME/.adk 2>/dev/null cd $HOME/.adk function MOVER () { cd $HOME/.adk for i in * do direc=$(cat /tmp/archi | grep $i 2>/dev/null) mv $i $direc 2>/dev/null done rm /tmp/archi 2>/dev/null cd } #Bucle para elegir todos los archivos k kieres, y moverlos a $HOME/.adk, la ubicacion donde estaban se guarda en /tmp/archi #opc=$(echo n) until test $opc = n 2>/dev/null do seleccion cd $HOME/.adk 2>/dev/null cat /tmp/ar >> /tmp/archi 2>/dev/null direc=$(cat /tmp/ar 2>/dev/null) mv $direc ./ 2>/dev/null done # Comprobacion del tamaño de lo k kieres grabar du -m $HOME/.adk > /tmp/.tam tam=$(awk '{print $1}' /tmp/.tam) rm /tmp/.tam if test $tam -le $TAM then dialog --msgbox "Introduzca un CD virgen y pulse " "7" "40" rm /tmp/adikcion 2>/dev/null rm /tmp/adk 2>/dev/null rm /tmp/ru 2>/dev/null rm /tmp/menu.exp.tmp.** 2>/dev/null rm /tmp/ar 2>/dev/null rm /tmp/pos 2>/dev/null cd $HOME/.adk &>/dev/null if mkisofs -R -T -J -o /tmp/adikto.iso * then if cdrecord dev=$DEV speed=$VEL -v -eject /tmp/adikto.iso then sleep 1 rm -rf /tmp/adikto.iso MOVER else sleep 1 dialog --title "$TITULO" --msgbox "ERROR: No se ha podido grabar la imagen" "7" "40" MOVER break fi else dialog --title "$TITULO" --msgbox "ERROR: No tienes instalado mkisofs" "7" "40" MOVER fi else dialog --title "$TITULO" --msgbox "ERROR: La imagen es demasiado grande" "7" "40" MOVER fi MOVER VOLVER="si" rm -rf $HOME/.adk &>/dev/null rm -f /tmp/ar &>/dev/null rm -f /tmp/archi &>/dev/null ;; esac ;; 1)VOLVER="si" MOVER ;; 255)VOLVER="si";SALIR="si" MOVER ;; esac } #------------------------------------------------------------------------ #-------------------------- MENU ISO ------------------------------------ #------------------------------------------------------------------------ function ISO () { VOLVER="no";SALIR="no" SECCION="Iso" function Navegar () { cd / url=$(echo "/") opc = "y" until test $opc = n 2>/dev/null do ls > /tmp/adikcion echo -e "cd $url" > /tmp/adk echo -e "dialog --title \"$TITULO\" --menu \"\\nIndike donde esta la ISO:\\n\\n\" \"20\" \"50\" \"10\" \\" >> /tmp/adk aux=$(awk '{print "\""$1"\"" "\t\t\t" "\"" "\""}' /tmp/adikcion) echo $aux "2> /tmp/menu.exp.tmp.\$\$" >> /tmp/adk echo -e "retval=\$?" >> /tmp/adk echo -e "opcion=\`cat /tmp/menu.exp.tmp.\$\$\`" >> /tmp/adk echo -e "rm -f /tmp/menu.exp.tmp.\$\$" >> /tmp/adk echo -e "case \$retval in" >> /tmp/adk echo -e "0)case \$opcion in" >> /tmp/adk awk '{printf "\047"$1"\047"")" " cd " $1 "\n" ";;""\n"}' /tmp/adikcion >> /tmp/adk echo -e "esac \n ;; \n 1) echo si > /tmp/pos ;; \n 255) echo si > /tmp/pos ;; \nesac\nurl=\$(pwd)\necho \$url > /tmp/ru\necho \$opcion > /tmp/ar" >> /tmp/adk chmod 777 /tmp/adk /tmp/adk 2>/dev/null url=$(more /tmp/ru 2>/dev/null) pwd=$(pwd) pos=$(more /tmp/pos 2>/dev/null) if test "$pos" = "si" then cd .. echo > /tmp/pos url=$(pwd) else if test $url != $pwd then cd $url 2>/dev/null else opc=$(echo n) fi fi done } Navegar aux=$(more /tmp/ar 2>/dev/null) ar=$(echo $url/$aux) ls -l $ar > /tmp/.tam tam=$(awk '{print $5}' /tmp/.tam) rm /tmp/.tam if test $tam -lt $TAM then dialog --msgbox "Introduzca un CD virgen y pulse " "7" "40" rm /tmp/adikcion 2>/dev/null rm /tmp/adk 2>/dev/null rm /tmp/ru 2>/dev/null rm /tmp/menu.exp.tmp.** 2>/dev/null rm /tmp/ar 2>/dev/null rm /tmp/pos 2>/dev/null aux=$(echo $ar | grep *.iso) if test "$ar" = "$aux" then if cdrecord dev=$DEV speed=$VEL -v -eject $ar then sleep 1 dialog --title "$TITULO" --msgbox "La ISO se ha grabado satisfactoriamente" "7" "40" break else sleep 1 dialog --title "$TITULO" --msgbox "ERROR: No se ha podido grabar la imagen" "7" "40" break fi else dialog --title "$TITULO" --msgbox "ERROR: El formato de la imagen no es ISO" "7" "40" break fi else dialog --title "$TITULO" --msgbox "ERROR: La imagen es demasiado grande" "7" "40" fi VOLVER="si" } # ------------------------------------------------------------------------ # ------------------------------ BORRAR ---------------------------------- # ------------------------------------------------------------------------ function BORRAR () { #VOLVER="si";SALIR="si" dialog --clear --title "$TITULO" --menu "\n" "7" "54" "1" "Introduce el cd k kieres borrar y pulsa " "" 2> /tmp/menu.tmp.$$ retval=$? opcion=`cat /tmp/menu.tmp.$$` rm -f /tmp/menu.tmp.$$ case $retval in 0) case $opcion in 'Introduce el cd k kieres borrar y pulsa ') if cdrecord -dev=$DEV -blank=fast -eject 2>/dev/null then dialog --clear --title "$TITULO" --msgbox "\nCD borrado perfectamente" "8" "40" else dialog --clear --title "$TITULO" --msgbox "\nERROR: no se ha podido borrar" "8" "40" fi;; esac ;; 1) VOLVER="si" ;; 255) VOLVER="si" ;; esac } #-------------------------------------------------------------------------- #---------------------------- MENU INICIAL -------------------------------- # ------------------------------------------------------------------------- function Menu () { VOLVER="no";SALIR="no" dialog --clear --title "$TITULO" \ --menu " -- BIENVENID@ A aDiKcIoN --\n\ Usa los cursores para seleccionar una opcion y pulsa para entrar en ella. " "15" "$ANCHO_MENU" "6" \ "MUSICA" "Grabar música desde cd's o desde el disco duro." \ "DATOS" "Grabar datos desde cd's o desde el disco duro."\ "ISO" "Grabar una iso." \ "BORRAR" "Borrar un regrabable" \ " " ""\ "Salir" "Salir a la shell" 2> /tmp/menu.tmp.$$ retval=$? opcion=`cat /tmp/menu.tmp.$$` rm -f /tmp/menu.tmp.$$ case $retval in 0) case $opcion in 'MUSICA')until test "$VOLVER" = "si" do MUSICA done ;; 'DATOS') until test "$VOLVER" = "si" do DATOS done ;; 'ISO') until test "$VOLVER" = "si" do ISO done ;; 'BORRAR') until test "$VOLVER" = "si" do BORRAR done ;; 'Salir') SALIR="si" ;; esac ;; 1) SALIR="si" ;; 255) SALIR="si" ;; esac } # ------------------------------------------------------------------------ # ------------------------ CONFIGURACION --------------------------------- # ------------------------------------------------------------------------ function Configuracion () { VOLVER="no";SALIR="no" dialog --clear --title "$TITULO" \ --menu " -- CONFIGURACIÓN -- Selecciona tu grabadora" "15" "30" "6" "/dev/cdrom" "" "/dev/scd0" "" "/dev/scd1" "" "/dev/scd2" "" "/dev/sda1" "" "/dev/sda2" "" 2> /tmp/menu.tmp.$$ retval=$? opcion=`cat /tmp/menu.tmp.$$` rm -f /tmp/menu.tmp.$$ case $retval in 0) case $opcion in '/dev/cdrom') GRAB="/dev/cdrom" ;; '/dev/scd0') GRAB="/dev/scd0" ;; '/dev/scd1') GRAB="/dev/scd1" ;; '/dev/scd2') GRAB="/dev/scd2" ;; '/dev/sda1') GRAB="/dev/sda1" ;; '/dev/sda2') GRAB="/dev/sda2" ;; esac ;; 1) SALIR="si" ;; 255) SALIR="si" ;; esac if test "$SALIR" != "si" then dialog --clear --title "$TITULO" \ --menu " -- CONFIGURACIÓN -- Selecciona el dispositivo scsi k tengas como grabadora" "17" "30" "7" "0,0,0" "" "0,0,1" "" "0,0,2" "" "0,0,3" "" "0,0,4" "" "0,0,5" "" "0,0,6" "" "0,0,7" "" "0,1,0" "" "0,2,0" "" "0,3,0" "" "0,4,0" "" "0,5,0" "" "0,6,0" "" "0,7,0" "" "1,0,0" "" "2,0,0" "" "3,0,0" "" "4,0,0" "" "5,0,0" "" "6,0,0" "" "7,0,0" "" 2> /tmp/menu.tmp.$$ retval=$? opcion=`cat /tmp/menu.tmp.$$` rm -f /tmp/menu.tmp.$$ case $retval in 0) case $opcion in '0,0,0') DEV="0,0,0" ;; '0,0,1') DEV="0,0,1" ;; '0,0,2') DEV="0,0,2" ;; '0,0,3') DEV="0,0,3" ;; '0,0,4') DEV="0,0,4" ;; '0,0,5') DEV="0,0,5" ;; '0,0,6') DEV="0,0,6" ;; '0,0,7') DEV="0,0,7" ;; '0,1,0') DEV="0,1,0" ;; '0,2,0') DEV="0,2,0" ;; '0,3,0') DEV="0,3,0" ;; '0,4,0') DEV="0,4,0" ;; '0,5,0') DEV="0,5,0" ;; '0,6,0') DEV="0,6,0" ;; '0,7,0') DEV="0,7,0" ;; '1,0,0') DEV="1,0,0" ;; '2,0,0') DEV="2,0,0" ;; '3,0,0') DEV="3,0,0" ;; '4,0,0') DEV="4,0,0" ;; '5,0,0') DEV="5,0,0" ;; '6,0,0') DEV="6,0,0" ;; '7,0,0') DEV="7,0,0" ;; esac ;; 1) SALIR="si" ;; 255) SALIR="si" ;; esac if test "$SALIR" != "si" then dialog --clear --title "$TITULO" \ --menu " -- CONFIGURACIÓN -- Elija la velocidad de grabacion" "17" "30" "7" "2" "" "4" "" "6" "" "8" "" "10" "" "12" "" "14" "" "16" "" "18" "" "20" "" "22" "" "24" "" "28" "" "30" "" "32" "" "34" "" "36" "" "38" "" "40" "" "42" "" "44" "" "46" "" "48" "" "50" "" "52" "" "54" "" "56" "" "58" "" "60" "" 2> /tmp/menu.tmp.$$ retval=$? opcion=`cat /tmp/menu.tmp.$$` rm -f /tmp/menu.tmp.$$ case $retval in 0) case $opcion in '2') VEL="2" ;; '4') VEL="4" ;; '6') VEL="6" ;; '8') VEL="8" ;; '10') VEL="10" ;; '12') VEL="12" ;; '14') VEL="14" ;; '16') VEL="16" ;; '18') VEL="18" ;; '20') VEL="20" ;; '22') VEL="22" ;; '24') VEL="24" ;; '26') VEL="26" ;; '28') VEL="28" ;; '30') VEL="30" ;; '32') VEL="32" ;; '34') VEL="34" ;; '36') VEL="36" ;; '38') VEL="38" ;; '40') VEL="40" ;; '42') VEL="42" ;; '44') VEL="44" ;; '46') VEL="46" ;; '48') VEL="48" ;; '50') VEL="50" ;; '52') VEL="52" ;; '54') VEL="54" ;; '56') VEL="56" ;; '58') VEL="58" ;; '60') VEL="60" ;; esac ;; 1) SALIR="si" ;; 255) SALIR="si" ;; esac if test "$SALIR" != "si" then dialog --clear --title "$TITULO" \ --menu " -- CONFIGURACIÓN -- Elige el tamaño de tu CD" "17" "30" "7" "180 MB" "20 minutos" "200 MB" "23 minutos" "245 MB" "28 minutos" "650 MB" "74 minutos" "700 MB" "80 minutos" "790 MB" "90 minutos" "880 MB" "100 minutos" 2> /tmp/menu.tmp.$$ retval=$? opcion=`cat /tmp/menu.tmp.$$` rm -f /tmp/menu.tmp.$$ case $retval in 0) case $opcion in '180 MB') TAM="181" ;; '200 MB') TAM="201" ;; '245 MB') TAM="246" ;; '650 MB') TAM="651" ;; '700 MB') TAM="701" ;; '790 MB') TAM="791" ;; '880 MB') TAM="881" ;; esac ;; 1) SALIR="si" ;; 255) SALIR="si" ;; esac fi fi fi } # ------------------------------------------------------------------------ # ------------------------ PROGRAMA PRINCIPAL ---------------------------- # ------------------------------------------------------------------------ Configuracion until test "$SALIR" = "si" do Menu done clear echo -e "$MSG"