"scrivi-iso-su-dvd" Registrazione di ISO su DVD - usa growisofs

- A cura del Prof. Stefano Salvi -


#!/bin/bash
# Questa prima riga serve per indicare a Linux quale programma chiamare
# per eseguire questo script. Richiamando direttamente lo scritt verra' 
# richiamata /bin/bash con, come parametro, questo script
# Per poter richiamare in questo modo lo script, esso deve essere
# ESEGUIBILE. Per renderlo tale occorrera' richiamare:
# chmod 755 scrivi-iso-su-dvd
# Per richiamare lo script, o esso risiede in una delle directory elencate
# nella variabile PATH (che possiamo vedere con il comando "echo $PATH")
# oppure dovremo indicarne il percorso (ad esempio "./scrivi-iso-su-dvd"
# per farlo eseguire nella directory corrente).
# Se pensiamo di utilizzarlo spesso, potremo copiarlo, ad esempio, in 
# /usr/local/bin che fa appunto parte del PATH, con il comando
# cp scrivi-iso-su-dvd /usr/local/bin
# dovremo pero' essere l'utente root per farlo.
#
# scrivi-iso-su-dvd

# Stefano Salvi <stefano@salvi.mn.it>
# this file is available under the GNU general public license

# Per prima cosa copieremo il parametro con il nome della ISO in una
# variabile
ISO="$1"
# verifichiamo che ci sia il parametro
if [ -z $ISO ]
then
	echo "Devi indicare l'immagine da scrivere"
	exit 1
fi
# Verifichiamo che la ISO esista e sia leggibile
# Le virgolette attorno al "/dev/cdrw=$ISO" servono per consentire spazi
# nel nome del file.
if [ ! -r "$ISO" ]
then
# Se non e' leggibile, stampo un errore e termino
	echo "Il file \"$ISO\" da registrare non esiste"
	exit 2
fi
# adesso controlla se facciamo parte del gruppo "cdrom".
# se facciamo parte di questo gruppo, possiamo scrivere i DVD
# direttamente.
# Il comando "groups" elenca tutti i gruppi in cui e' inserito l'utente.
# Il comando "grep" cerca una stringa in un file o nello standard input.
# Grep ritorna "vero" se ha trovato la stringa.
# Il parametro "-v" inverte il confronto: grep ritorna vero se NON ha trovato
# la stringa.
# Il parametro -q sopprime l'output normale del comando grep (voglio solo
# il valore di ritorno, non dei messaggi a video).
if (groups | grep -vq cdrom)
then
	echo "Non fai parte del gruppo \"cdrom\", qundi non puoi registrare"
	echo "un DVD"
	echo "Esegui il comando \"gpasswd -a $USER cdrom\" ed al"
	echo "prossimo login potrai registrare i DVD"
	exit 3
fi

# ora eseguo la scrittura vera e propria.
# Richiamo il comando growisofs, indicando il device del masterizzatore
# che nel mio caso e' /dev/cdrw (ma protrebbe essere /dev/cdrom o 
# /dev/hd<lettera> ), richiedo la compatibilita' con il formato DVD, 
# l'apertura di una sessione e la scrittura dell'immagine, invece della 
# creazione di un'immagine al volo.
# Le virgolette attorno al "/dev/cdrw=$ISO" servono per consentire spazi
# nel nome del file.
growisofs -dvd-compat -Z "/dev/cdrw=$ISO"