Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/11/2002, 15:49
Avatar de lical
lical
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: $PWD
Mensajes: 1.267
Antigüedad: 23 años
Puntos: 0
Script para copiar CDs

Hola a todos.

Os presento mi última creación . Es un script que usa cdrdao para copiar CDs. Así por lo menos le ahorro a alguien algún posavasos y unos minutos de lectura de páginas man

Aportaciones / sugerencias / correcciones bienvenidas:

Código:
#!/bin/bash

####
# copiacd
# 'Front-end' para copiar CDs usando cdrdao
# (C) Ricardo Cervera Navarro. <[email protected]>
# Under GPL License v. 2
####

# CONFIGURACIÓN
#
GRABADORA=0,1,0
LECTOR=0,0,0
MODO_LECUTRA_AUDIO=0 # 0 a 3 según el nivel de corrección.
                     # Cuanto más alto sea el valor, mayor corrección,
                     # pero lectura _mucho_ más lenta.

# FUNCIONES
#
function leer_audio ()
{
        cdrdao read-cd --device "$LECTOR" --driver generic-mmc \
        --paranoia-mode "$MODO_LECTURA_AUDIO" --datafile ./image_audio ./image_audio.toc
}

function tostar_audio ()
{
        VELOCIDAD=$1
        cdrdao write --device "$GRABADORA" --driver generic-mmc \
        --eject --speed "$VELOCIDAD" ./image_audio.toc
}

function leer_psx ()
{
        cdrdao read-cd --read-raw --device "$LECTOR" --driver generic-mmc-raw \
        --datafile ./image_psx.bin ./image_psx.toc
}

function tostar_psx ()
{
        VELOCIDAD=$1
        cdrdao write --eject --speed "$VELOCIDAD" --device "$GRABADORA" \
        --driver generic-mmc ./image_psx.toc
}

function leer_datos ()
{
        cdrdao read-cd --device "$LECTOR" --driver generic-mmc \
        --datafile ./image_datos ./image_datos.toc
}

function tostar_datos ()
{
        VELOCIDAD=$1
        cdrdao write --eject --speed "$VELOCIDAD" --device "$GRABADORA" \
        --driver generic-mmc ./image_datos.toc
}

##########

function uso ()
{
        echo "copiacd -- Script que copia CDs usando cdrdao"
        echo "-------"
        echo "copiacd necesita al menos un argumento"
        echo "para funcionar, dependiendo del modo."
        echo " "
        echo "Uso: copiacd <modo> [<velocidad>]"
        echo " "
        echo "Los modos posibles son:"
        echo "-datos_leer"
        echo "-datos_tostar <velocidad>"
        echo "-datos <velocidad>"
        echo "-psx_leer"
        echo "-psx_tostar <velocidad>"
        echo "-psx <velocidad>"
        echo "-audio_leer"
        echo "-audio_tostar <velocidad>"
        echo "-audio <velocidad>"
        echo " "
        echo "Las opciones *_leer, leen el CD, dejando la imagen"
        echo "y el fichero TOC en el directorio actual."
        echo " "
        echo "Las opciones *_tostar, graban la imagen del directorio"
        echo "actual a un CD en la grabadora a velocidad igual"
        echo "a <velocidad>"
        echo " "
        echo "Las opciones sin _leer ni _tostar, primero leen el disco"
        echo "y después lo graban a velocidad igual a <velocidad>."
        echo "Cuando termina el proceso borran los archivos de imagen,"
        echo "al contrario que las opciones *_tostar, las cuales nos"
        echo "permiten crear varias copias con una sola lectura."
        echo " "
        echo "(C) Ricardo Cervera Navarro. <[email protected]>"
        echo "Under GPL License v. 2"
        echo " "
}

# EJECUCIÓN
#
case $1 in
        -audio_leer)
                leer_audio
                ;;

        -audio_tostar)
                if [ $# -ge 2 ]; then
                        tostar_audio $2
                else
                        uso
                fi
                ;;

        -audio)
                if [ $# -ge 2 ]; then
                        leer_audio
                        tostar_audio $2
                        rm -f ./image_audio ./image_audio.toc
                else
                        uso
                fi
                ;;

        -psx_leer)
                leer_psx
                ;;

        -psx_tostar)
                if [ $# -ge 2 ]; then
                        tostar_psx $2
                else
                        uso
                fi
                ;;

        -psx)
                if [ $# -ge 2 ]; then
                        leer_psx
                        tostar_psx $2
                        rm -f ./image_psx.bin ./image_psx.toc
                else
                        uso
                fi
                ;;

        -datos_leer)
                leer_datos
                ;;

        -datos_tostar)
                if [ $# -ge 2 ]; then
                        tostar_datos $2
                else
                        uso
                fi
                ;;

        -datos)
                if [ $# -ge 2 ]; then
                        leer_datos
                        tostar_datos $2
                        rm -f ./image_datos ./image_datos.toc
                else
                        uso
                fi
                ;;

        *)
                uso
                ;;

esac

Un saludo,
__________________
lical-> Usuario registrado de Linux #254225

ZonaSiete.ORG - GNU/Linux eminentemente práctico