#!/bin/bash
# ex40.sh (burn-cd.sh)
# Script d'automatisation de gravure de CD.


VITESSE=2          # Peut être plus élevée si votre graveur en est capable.
FICHIER_IMAGE=cdimage.iso
FICHIER_CONTENU=contenu
PERIPHERIQUE=cdrom
#PERIPHERIQUE="0,0" pour les anciennes versions de cdrecord
REPERTOIRE_PAR_DEFAUT=/opt  # C'est le répertoire contenant les fichiers à graver.
                            # Assurez-vous qu'il existe bien.
			    # Exercice : ajoutez cette vérification.

# Utilise le package "cdrecord" de Joerg Schilling.
# http://www.fokus.fhg.de/usr/schilling/cdrecord.html

#  Si ce script est exécuté par un utilisateur normal, alors il pourrait être
#+ nécessaire de lancer suid sur cdrecord
#+ (chmod u+s /usr/bin/cdrecord, en tant que root).
#+ Bien sûr, ceci crée une petite faille de sécurité.

if [ -z "$1" ]
then
  REPERTOIRE_IMAGE=$REPERTOIRE_PAR_DEFAUT
  # Le répertoire par défaut, si non défini sur la ligne de commande.
else
  REPERTOIRE_IMAGE=$1
fi

# Créer un fichier "sommaire".
ls -lRF $REPERTOIRE_IMAGE > $REPERTOIRE_IMAGE/$FICHIER_CONTENU
# L'option "l" donne une "longue" liste de fichier.
# L'option "R" rend la liste récursive.
# L'option "F" marque le type des fichiers (les répertoires se voient ajouter un /
#+ final).
echo "Sommaire en cours de création."

# Créer un fichier image avant de le graver sur CD.
mkisofs -r -o $FICHIER_IMAGE $REPERTOIRE_IMAGE
echo "Image ISO9660 ($FICHIER_IMAGE) en cours de création."

# Grave le CD.
echo "Gravure du CD."
echo "Veuillez patientez."
cdrecord -v -isosize speed=$VITESSE dev=$PERIPHERIQUE $FICHIER_IMAGE

exit $?
