« Graver en ligne de commande » : différence entre les versions

De Le Wiki du Forum-Debian.fr
Aller à la navigation Aller à la recherche
m (J'ai dû remplacer les tildes qui étaient interprétés)
m (utilisation de <syntaxhighlight lang="sh">)
Ligne 5 : Ligne 5 :
Surtout ne pas hésiter à améliorer le script, il est sur le wiki rien que pour ça.
Surtout ne pas hésiter à améliorer le script, il est sur le wiki rien que pour ça.


#!/bin/sh
<syntaxhighlight lang="sh">
#-----------------------------------------------#
#!/bin/sh
# Script pour graver en console plus facilement #
#-----------------------------------------------#
# nécessite genisoimage, wodim,                #
# Script pour graver en console plus facilement #
# éventuellement oggdec, sox,  lame, flac...    #
# nécessite genisoimage, wodim,                #
# pour les conversions de fichiers audio        #
# éventuellement oggdec, sox,  lame, flac...    #
#-----------------------------------------------#
# pour les conversions de fichiers audio        #
#-----------------------------------------------#
#------------------ Reste à Faire : -----------------------------#
 
# Préciser les dépendances                                      #
#------------------ Reste à Faire : -----------------------------#
# Ajouter une fonction pour vérifier que les dépendances sont là #
# Préciser les dépendances                                      #
# Revoir la gravure de fichiers audio                            #
# Ajouter une fonction pour vérifier que les dépendances sont là #
# Une meilleure vérification des données                        #
# Revoir la gravure de fichiers audio                            #
#----------------------------------------------------------------#
# Une meilleure vérification des données                        #
#----------------------------------------------------------------#
set -eu
 
set -eu
LISTE=/tmp/liste
 
LISTEAGRAVER=/tmp/liste_graver
LISTE=/tmp/liste
TMPDIR=/tmp/gravure
LISTEAGRAVER=/tmp/liste_graver
GRAVURE='1'
TMPDIR=/tmp/gravure
GRAVURE='1'
ERR_INTEGR=101
 
ERR_INTEGR=101
choix_fichier_ () {
 
  local FICHIER=''
choix_fichier_ () {
  local FICHIER=''
# Fonction qui va choisir le fichier
 
# on quitte lorsque l'on rentre la valeur 0
# Fonction qui va choisir le fichier
# On enregistre une liste des fichiers, le choix fait est reporté
# on quitte lorsque l'on rentre la valeur 0
# dans la LISTEAGRAVER
# On enregistre une liste des fichiers, le choix fait est reporté
  case "$1" in
# dans la LISTEAGRAVER
    'iso' )
  case "$1" in
    'iso' )
;;
 
'donnees' )
;;
      echo 'Choisir la liste des fichiers à ajouter :'
'donnees' )
  while [ "$FICHIER" != 0 ]; do
      echo 'Choisir la liste des fichiers à ajouter :'
  while [ "$FICHIER" != 0 ]; do
      ls -ApX | nl -n ln | tee "$LISTE"
 
  echo '------------------------------------------'
      ls -ApX | nl -n ln | tee "$LISTE"
  echo  "0 \t J'ai fini! \n"
  echo '------------------------------------------'
  read CHOIX
  echo  "0 \t J'ai fini! \n"
  if [ "$CHOIX" = 0 ]; then
  read CHOIX
  break
  if [ "$CHOIX" = 0 ]; then
  else
  break
  FICHIER=$(echo "$PWD/$(sed -n ${CHOIX}p $LISTE | awk -F"\t" '{print $2}')")
  else
  # Le nom du fichier est enregistré dans /tmp/liste_graver
  FICHIER=$(echo "$PWD/$(sed -n ${CHOIX}p $LISTE | awk -F"\t" '{print $2}')")
  #S'il s'agit d'un répertoire, on propose de l'ajouter à la liste, ou d'aller dedans
  # Le nom du fichier est enregistré dans /tmp/liste_graver
  #S'il s'agit d'un répertoire, on propose de l'ajouter à la liste, ou d'aller dedans
  case "$FICHIER" in
 
          */ | .. ) echo "1) Changer de répertoire : $FICHIER"
  case "$FICHIER" in
    echo '2) Ajouter ce répertoire pour le graver'
          */ | .. ) echo "1) Changer de répertoire : $FICHIER"
    read R
    echo '2) Ajouter ce répertoire pour le graver'
    case $R in
    read R
    1 ) cd "$FICHIER" ;;
    case $R in
    2 ) echo "$FICHIER" >> "$LISTEAGRAVER" ;;
    1 ) cd "$FICHIER" ;;
        esac
    2 ) echo "$FICHIER" >> "$LISTEAGRAVER" ;;
      ;;
        esac
        *) echo "$FICHIER" >> "$LISTEAGRAVER" ;;
      ;;
    esac
        *) echo "$FICHIER" >> "$LISTEAGRAVER" ;;
    fi
    esac
  done
    fi
;;
  done
esac
;;
}
esac
}
 
edite_ () {
 
  local C=1
edite_ () {
  while [ "$C" != 0 ]; do
  local C=1
  echo  "Voici la liste des fichiers à graver : \n"
  while [ "$C" != 0 ]; do
  cat "$LISTEAGRAVER"
  echo  "Voici la liste des fichiers à graver : \n"
  echo  "\n \n"
  cat "$LISTEAGRAVER"
  echo  "1)\t Ajouter des fichiers "
  echo  "\n \n"
  echo  "2)\t Enlever des fichiers"
  echo  "1)\t Ajouter des fichiers "
  echo  "0)\t J'ai fini! "
  echo  "2)\t Enlever des fichiers"
  read C
  echo  "0)\t J'ai fini! "
  case $C in
  read C
  1 ) choix_fichier_ ;;
  case $C in
  0 ) break ;;
  1 ) choix_fichier_ ;;
  2 ) echo 'Que supprimer?'
  0 ) break ;;
        nl -n ln "$LISTEAGRAVER"
  2 ) echo 'Que supprimer?'
  read SUPPR
        nl -n ln "$LISTEAGRAVER"
  if  [ "$SUPPR" -le $(wc -l < "$LISTEAGRAVER") ] && [ "$SUPPR" != "" ] ; then
  read SUPPR
  sed ${SUPPR}d "$LISTEAGRAVER" > /tmp/listetmp
  if  [ "$SUPPR" -le $(wc -l < "$LISTEAGRAVER") ] && [ "$SUPPR" != "" ] ; then
  mv /tmp/listetmp $LISTEAGRAVER
  sed ${SUPPR}d "$LISTEAGRAVER" > /tmp/listetmp
  else
  mv /tmp/listetmp $LISTEAGRAVER
  echo "*** Erreur, ce numéro n'est pas disponible ***"
  else
  echo '*** Entrez un choix valide ***'
  echo "*** Erreur, ce numéro n'est pas disponible ***"
  fi
  echo '*** Entrez un choix valide ***'
  ;;
  fi
  * ) echo 'Veuillez entrer un choix valide' ;;
  ;;
  esac
  * ) echo 'Veuillez entrer un choix valide' ;;
  esac
    done
 
}
  done
}
# controle de l'image
 
# Retourne 0 si le CD gravé est conforme à l'image ISO,
# controle de l'image
# 1 sinon.
# Retourne 0 si le CD gravé est conforme à l'image ISO,
verif_integrite_ () {
# 1 sinon.
  local MD5_ISO=$(md5sum "$1" | awk '{print $1}')
verif_integrite_ () {
  echo "md5sum de l'iso : $MD5_ISO" >&2
  local MD5_ISO=$(md5sum "$1" | awk '{print $1}')
  local MD5_CD=$(md5sum /dev/scd0 | awk '{print $1}')
  echo "md5sum de l'iso : $MD5_ISO" >&2
  echo "md5sum du cd gravé: $MD5_CD" >&2
  local MD5_CD=$(md5sum /dev/scd0 | awk '{print $1}')
  echo "md5sum du cd gravé: $MD5_CD" >&2
  # Donne à la fonction sa valeur de retour
 
  [ "$MD5_ISO" -eq "$MD5_CD" ]
  # Donne à la fonction sa valeur de retour
}
  [ "$MD5_ISO" -eq "$MD5_CD" ]
}
grave_iso_ () {
 
  echo "Choisissez l'image iso à graver"
grave_iso_ () {
  choix_fichier_ 'iso'
  echo "Choisissez l'image iso à graver"
  choix_fichier_ 'iso'
  if [ -n "$(cat $LISTEAGRAVER)" ]; then
 
    echo "on va graver $(cat $LISTEAGRAVER)"
  if [ -n "$(cat $LISTEAGRAVER)" ]; then
    echo  "L'image à graver fait: \t $(du -h $(cat $LISTEAGRAVER) | awk '{print $1}')"
    echo "on va graver $(cat $LISTEAGRAVER)"
    echo  'Assurez-vous que votre cd/dvd est assez grand'
    echo  "L'image à graver fait: \t $(du -h $(cat $LISTEAGRAVER) | awk '{print $1}')"
    echo 'On y va? (O/N)'
    echo  'Assurez-vous que votre cd/dvd est assez grand'
    read CHOIX
    echo 'On y va? (O/N)'
    case $CHOIX in
    read CHOIX
      O | o )
    case $CHOIX in
        wodim -v dev=/dev/scd0 -data "$(cat $LISTEAGRAVER)"
      O | o )
        if ! verif_integrite_ "$(cat $LISTEAGRAVER)"; then
        wodim -v dev=/dev/scd0 -data "$(cat $LISTEAGRAVER)"
          echo "Erreur: echec lors de la vérification d'intégrité" >&2
        if ! verif_integrite_ "$(cat $LISTEAGRAVER)"; then
          exit $ERR_INTEGR
          echo "Erreur: echec lors de la vérification d'intégrité" >&2
        fi
          exit $ERR_INTEGR
        ;;
        fi
      N | n ) echo "annulation de la gravure"
        ;;
        ;;
      N | n ) echo "annulation de la gravure"
    esac
        ;;
    esac
  fi
}
 
grave_donnees_ () {
choix_fichier_ 'donnees'
echo 'on édite la liste qui est à graver :'
edite_
echo 'Quel est le nom du volume ?'
read NOMVOLUME
if [ -n "$(cat $LISTEAGRAVER)" ]; then
  ###on lance la gravure
echo "Creation de l'image à graver"
genisoimage -R -r -J --hide-rr-moved -V "$NOMVOLUME" -o /tmp/$NOMVOLUME.iso $(cat $LISTEAGRAVER)
if [ ! -f /tmp/$NOMVOLUME.iso ]; then
echo "Erreur lors de la création de l'image"
exit 666
fi
#on affiche un avertissement sur la taille du fichier à graver
echo  "L'image à graver fait: \t $(du -h /tmp/$NOMVOLUME.iso | awk '{print $1}')"
echo  "Assurez-vous que votre cd/dvd est assez grand"
echo "On y va? (O/N)"
read CHOIX
case $CHOIX in
O | o )
  wodim -v dev=/dev/scd0 -data /tmp/$NOMVOLUME.iso
  if ! verif_integrite_ /tmp/$NOMVOLUME.iso; then
          echo "Erreur: echec lors de la vérification d'intégrité" >&2
          exit $ERR_INTEGR
        fi
;;
N | n ) echo "annulation de la gravure"
;;
esac
fi
}
 
grave_audio_ () {
  mkdir -p $TMPDIR
  [ -d $TMPDIR ]
    if [ $? = 0 ]; then
      choix_fichier_
      edite_
      echo  "\n \n On va maintenant convertir les fichiers pour les graver"
      cd $TMPDIR
      cp "$(cat $LISTEAGRAVER )" $TMPDIR
      echo "conversion des mp3 en wav"
      for i in *.[Mm][Pp]3; do
        lame --verbose --decode "$i" "${i%.mp3}.wav";
      done
      echo "conversion des ogg en wav"
      oggdec *.ogg
      echo "conversion des flac en wav"
      flac --decode *.flac
      echo "normalisation"
      normalize-audio --mix *.wav
      for i in *.wav ; do
        echo "Traitement de ${i}"
        sox "$i" "${i/%.wav/.cdr}"
      done
#on affiche un avertissement sur la taille du fichier à graver
      echo "Les données à graver font: \t $(du -sh $TMPDIR | awk '{print $1}')"
      echo 'Assurez-vous que votre cd est assez grand'
      echo 'On y va? (O/N)'
      read CHOIX
      case $CHOIX in
        O | o )
          echo  " \tOn va maintenant graver!!! \n \n "
          sleep 2
          wodim -v -dev=/dev/scd0 -pad -dao -audio *.cdr
        ;;
        N | n ) echo 'annulation de la gravure'
        ;;
      esac
   fi
   fi
}
}
 
grave_donnees_ () {
efface_disque_ () {
choix_fichier_ 'donnees'
  local EFFACEMENT=1
echo 'on édite la liste qui est à graver :'
while [ "$EFFACEMENT" != 0 ]; do
edite_
echo "Comment souhaitez-vous effacer le disque?"
echo 'Quel est le nom du volume ?'
echo  "1 \t Effacement complet"
read NOMVOLUME
echo  "2 \t Effacement rapide "
if [ -n "$(cat $LISTEAGRAVER)" ]; then
echo  "0 \t Annuler "
  ###on lance la gravure
read EFFACEMENT
echo "Creation de l'image à graver"
 
genisoimage -R -r -J --hide-rr-moved -V "$NOMVOLUME" -o /tmp/$NOMVOLUME.iso $(cat $LISTEAGRAVER)
case $EFFACEMENT in
if [ ! -f /tmp/$NOMVOLUME.iso ]; then
2 )
echo "Erreur lors de la création de l'image"
echo "C'est parti pour un effacement rapide :"
exit 666
sleep 1
fi
wodim blank=fast
#on affiche un avertissement sur la taille du fichier à graver
break
echo  "L'image à graver fait: \t $(du -h /tmp/$NOMVOLUME.iso | awk '{print $1}')"
;;
echo  "Assurez-vous que votre cd/dvd est assez grand"
1 )
echo "On y va? (O/N)"
echo "C'est parti pour un effacement complet :"
read CHOIX
sleep 1
case $CHOIX in
wodim blank=all
O | o )
break
  wodim -v dev=/dev/scd0 -data /tmp/$NOMVOLUME.iso
;;
  if ! verif_integrite_ /tmp/$NOMVOLUME.iso; then
* ) echo 'Veuillez entrer un choix valide' ;;
          echo "Erreur: echec lors de la vérification d'intégrité" >&2
esac
          exit $ERR_INTEGR
done
        fi
}
;;
 
N | n ) echo "annulation de la gravure"
echo '                    |//'
;;
echo '                    (o o)'
esac
echo '+-------------oOO----(_)---------------------+'
fi
echo '|--------------------------------------------|'
}
echo '|---------------- ¤ BONJOUR ! ¤ -------------|'
echo '|----- ¤ Ce Script va vous permettre ¤ ------|'
grave_audio_ () {
echo '|--------- ¤ de graver facilement ¤ ---------|'
  mkdir -p $TMPDIR
echo '|-------------- ¤ vos données ¤ -------------|'
  [ -d $TMPDIR ]
echo '+--------------------oOO---------------------+'
    if [ $? = 0 ]; then
echo '                  |__|__|'
      choix_fichier_
echo '                    || ||'
      edite_
echo '                  ooO Ooo'
      echo  "\n \n On va maintenant convertir les fichiers pour les graver"
echo " \n \n \n "
      cd $TMPDIR
 
      cp "$(cat $LISTEAGRAVER )" $TMPDIR
while [ "$GRAVURE" != 0 ]; do
      echo "conversion des mp3 en wav"
echo  "Que souhaitez-vous faire? (Entrez le numéro de votre choix) \n \n"
      for i in *.[Mm][Pp]3; do
echo  "1 \t Un disque de données "
        lame --verbose --decode "$i" "${i%.mp3}.wav";
#echo  "2 \t Un disque audio "
      done
echo  "2 \t Graver une image iso "
      echo "conversion des ogg en wav"
echo  "3 \t Effacer le disque "
      oggdec *.ogg
echo  "0 \t Quitter "
      echo "conversion des flac en wav"
read GRAVURE
      flac --decode *.flac
 
      echo "normalisation"
case $GRAVURE in
      normalize-audio --mix *.wav
1 ) grave_donnees_ ;;
      for i in *.wav ; do
#2 ) grave_audio_ ;;
        echo "Traitement de ${i}"
2 ) grave_iso_ ;;
        sox "$i" "${i/%.wav/.cdr}"
3 ) efface_disque_ ;;
      done
0 )
#on affiche un avertissement sur la taille du fichier à graver
echo '
      echo "Les données à graver font: \t $(du -sh $TMPDIR | awk '{print $1}')"
                        ''~''
      echo 'Assurez-vous que votre cd est assez grand'
                        ( o o )
      echo 'On y va? (O/N)'
+------------------.oooO--(_)--Oooo.------------------+
      read CHOIX
|                                                    |
      case $CHOIX in
|                      À BIENTÔT                      |
        O | o )
|                    .oooO                            |
          echo  " \tOn va maintenant graver!!! \n \n "
|                    (  )  Oooo.                    |
          sleep 2
+---------------------\ (----(  )--------------------+
          wodim -v -dev=/dev/scd0 -pad -dao -audio *.cdr
                      \_)    ) /
        ;;
                            (_/
        N | n ) echo 'annulation de la gravure'
'
        ;;
exit 2
      esac
;;
    fi
* ) echo 'Veuillez entrer un choix valide' ;;
}
esac
done
efface_disque_ () {
 
  local EFFACEMENT=1
while [ "$EFFACEMENT" != 0 ]; do
echo "Comment souhaitez-vous effacer le disque?"
echo  "1 \t Effacement complet"
echo  "2 \t Effacement rapide "
echo  "0 \t Annuler "
read EFFACEMENT
case $EFFACEMENT in
2 )
echo "C'est parti pour un effacement rapide :"
sleep 1
wodim blank=fast
break
;;
1 )
echo "C'est parti pour un effacement complet :"
sleep 1
wodim blank=all
break
;;
* ) echo 'Veuillez entrer un choix valide' ;;
esac
done
}
echo '                    |//'
echo '                    (o o)'
echo '+-------------oOO----(_)---------------------+'
echo '|--------------------------------------------|'
echo '|---------------- ¤ BONJOUR ! ¤ -------------|'
echo '|----- ¤ Ce Script va vous permettre ¤ ------|'
echo '|--------- ¤ de graver facilement ¤ ---------|'
echo '|-------------- ¤ vos données ¤ -------------|'
echo '+--------------------oOO---------------------+'
echo '                  |__|__|'
echo '                    || ||'
echo '                  ooO Ooo'
echo " \n \n \n "
while [ "$GRAVURE" != 0 ]; do
echo  "Que souhaitez-vous faire? (Entrez le numéro de votre choix) \n \n"
echo  "1 \t Un disque de données "
#echo  "2 \t Un disque audio "
echo  "2 \t Graver une image iso "
echo  "3 \t Effacer le disque "
echo  "0 \t Quitter "
read GRAVURE
case $GRAVURE in
1 ) grave_donnees_ ;;
#2 ) grave_audio_ ;;
2 ) grave_iso_ ;;
3 ) efface_disque_ ;;
0 )
echo '
                          ''~''
                        ( o o )
+------------------.oooO--(_)--Oooo.------------------+
|                                                    |
|                      À BIENTÔT                      |
|                    .oooO                            |
|                    (  )  Oooo.                    |
+---------------------\ (----(  )--------------------+
                        \_)    ) /
                              (_/
'
exit 2
;;
* ) echo 'Veuillez entrer un choix valide' ;;
esac
done
exit 0


exit 0
</syntaxhighlight>
[[Category:Scripts]]
[[Category:Scripts]]

Version du 15 février 2017 à 08:55

Ce script doit permettre de graver en ligne de commande des disques de données, des images iso, et si possible de créer des cd audio (Cette dernière fonction n'est pas prête pour l'instant).

Attention, le script est en cours d'élaboration (les tests positifs ont été réalisé en bash).

Surtout ne pas hésiter à améliorer le script, il est sur le wiki rien que pour ça.

#!/bin/sh
#-----------------------------------------------#
# Script pour graver en console plus facilement #
# nécessite genisoimage, wodim,                 #
# éventuellement oggdec, sox,  lame, flac...    #
# pour les conversions de fichiers audio        #
#-----------------------------------------------#

#------------------ Reste à Faire : -----------------------------#
# Préciser les dépendances                                       #
# Ajouter une fonction pour vérifier que les dépendances sont là #
# Revoir la gravure de fichiers audio                            #
# Une meilleure vérification des données                         #
#----------------------------------------------------------------#

set -eu

LISTE=/tmp/liste
LISTEAGRAVER=/tmp/liste_graver
TMPDIR=/tmp/gravure
GRAVURE='1'

ERR_INTEGR=101

choix_fichier_ () {
  local FICHIER=''

# Fonction qui va choisir le fichier
# on quitte lorsque l'on rentre la valeur 0
# On enregistre une liste des fichiers, le choix fait est reporté
# dans la LISTEAGRAVER
  case "$1" in
    'iso' )

		;;
		'donnees' )
      echo 'Choisir la liste des fichiers à ajouter :'
		  while [ "$FICHIER" != 0 ]; do

      ls -ApX | nl -n ln | tee "$LISTE"
		  echo '------------------------------------------'
		  echo  "0 \t J'ai fini! \n"
		  read CHOIX
		  if [ "$CHOIX" = 0 ]; then
			  break
		  else
			  FICHIER=$(echo "$PWD/$(sed -n ${CHOIX}p $LISTE | awk -F"\t" '{print $2}')")
			  # Le nom du fichier est enregistré dans /tmp/liste_graver
			  #S'il s'agit d'un répertoire, on propose de l'ajouter à la liste, ou d'aller dedans

			  case "$FICHIER" in
          */ | .. ) echo "1) Changer de répertoire : $FICHIER"
				    echo '2) Ajouter ce répertoire pour le graver'
				    read R
				    case $R in
					    1 ) cd "$FICHIER" ;;
					    2 ) echo "$FICHIER" >> "$LISTEAGRAVER" ;;
				        esac
				      ;;
			        *) echo "$FICHIER" >> "$LISTEAGRAVER" ;;
			    esac
		    fi
		   done
		;;
	esac
}


edite_ () {
  local C=1
  while [ "$C" != 0 ]; do
	  echo  "Voici la liste des fichiers à graver : \n"
	  cat "$LISTEAGRAVER"
	  echo  "\n \n"
	  echo  "1)\t Ajouter des fichiers "
	  echo  "2)\t Enlever des fichiers"
	  echo  "0)\t J'ai fini! "
	  read C
	  case $C in
		  1 ) choix_fichier_ ;;
		  0 ) break ;;
		  2 ) echo 'Que supprimer?'
        nl -n ln "$LISTEAGRAVER"
			  read SUPPR
			  if  [ "$SUPPR" -le $(wc -l < "$LISTEAGRAVER") ] && [ "$SUPPR" != "" ] ; then
				  sed ${SUPPR}d "$LISTEAGRAVER" > /tmp/listetmp
				  mv /tmp/listetmp $LISTEAGRAVER
			  else
				  echo "*** Erreur, ce numéro n'est pas disponible ***"
				  echo '*** Entrez un choix valide ***'
			  fi
			  ;;
		  * ) echo 'Veuillez entrer un choix valide' ;;
	  esac

   done
}

# controle de l'image
# Retourne 0 si le CD gravé est conforme à l'image ISO,
# 1 sinon.
verif_integrite_ () {
  local MD5_ISO=$(md5sum "$1" | awk '{print $1}')
  echo "md5sum de l'iso : $MD5_ISO" >&2
  local MD5_CD=$(md5sum /dev/scd0 | awk '{print $1}')
  echo "md5sum du cd gravé: $MD5_CD" >&2

  # Donne à la fonction sa valeur de retour
  [ "$MD5_ISO" -eq "$MD5_CD" ]
}

grave_iso_ () {
  echo "Choisissez l'image iso à graver"
  choix_fichier_ 'iso'

  if [ -n "$(cat $LISTEAGRAVER)" ]; then
    echo "on va graver $(cat $LISTEAGRAVER)"
    echo  "L'image à graver fait: \t $(du -h $(cat $LISTEAGRAVER) | awk '{print $1}')"
    echo  'Assurez-vous que votre cd/dvd est assez grand'
    echo 'On y va? (O/N)'
    read CHOIX
    case $CHOIX in
      O | o )
        wodim -v dev=/dev/scd0 -data "$(cat $LISTEAGRAVER)"
        if ! verif_integrite_ "$(cat $LISTEAGRAVER)"; then
          echo "Erreur: echec lors de la vérification d'intégrité" >&2
          exit $ERR_INTEGR
        fi
        ;;
      N | n ) echo "annulation de la gravure"
        ;;
    esac
  fi
}

grave_donnees_ () {
	choix_fichier_ 'donnees'
	echo 'on édite la liste qui est à graver :'
	edite_
	echo 'Quel est le nom du volume ?'
	read NOMVOLUME
	if [ -n "$(cat $LISTEAGRAVER)" ]; then
	  ###on lance la gravure
		echo "Creation de l'image à graver"
		genisoimage -R -r -J --hide-rr-moved -V "$NOMVOLUME" -o /tmp/$NOMVOLUME.iso $(cat $LISTEAGRAVER)
		if [ ! -f /tmp/$NOMVOLUME.iso ]; then
			echo "Erreur lors de la création de l'image"
			exit 666
		fi
		#on affiche un avertissement sur la taille du fichier à graver
		echo  "L'image à graver fait: \t $(du -h /tmp/$NOMVOLUME.iso | awk '{print $1}')"
		echo  "Assurez-vous que votre cd/dvd est assez grand"
		echo "On y va? (O/N)"
		read CHOIX
		case $CHOIX in
			O | o )
			  wodim -v dev=/dev/scd0 -data /tmp/$NOMVOLUME.iso
			  if ! verif_integrite_ /tmp/$NOMVOLUME.iso; then
          echo "Erreur: echec lors de la vérification d'intégrité" >&2
          exit $ERR_INTEGR
        fi
			;;
			N | n ) echo "annulation de la gravure"
			;;
		esac
	fi
}

grave_audio_ () {
  mkdir -p $TMPDIR
  [ -d $TMPDIR ]
    if [ $? = 0 ]; then
      choix_fichier_
      edite_
      echo  "\n \n On va maintenant convertir les fichiers pour les graver"
      cd $TMPDIR
      cp "$(cat $LISTEAGRAVER )" $TMPDIR
      echo "conversion des mp3 en wav"
      for i in *.[Mm][Pp]3; do
        lame --verbose --decode "$i" "${i%.mp3}.wav";
      done
      echo "conversion des ogg en wav"
      oggdec *.ogg
      echo "conversion des flac en wav"
      flac --decode *.flac
      echo "normalisation"
      normalize-audio --mix *.wav
      for i in *.wav ; do
        echo "Traitement de ${i}"
        sox "$i" "${i/%.wav/.cdr}"
      done
#on affiche un avertissement sur la taille du fichier à graver
      echo "Les données à graver font: \t $(du -sh $TMPDIR | awk '{print $1}')"
      echo 'Assurez-vous que votre cd est assez grand'
      echo 'On y va? (O/N)'
      read CHOIX
      case $CHOIX in
        O | o )
          echo  " \tOn va maintenant graver!!! \n \n "
          sleep 2
          wodim -v -dev=/dev/scd0 -pad -dao -audio *.cdr
        ;;
        N | n ) echo 'annulation de la gravure'
        ;;
      esac
   fi
}

efface_disque_ () {
  local EFFACEMENT=1
	while [ "$EFFACEMENT" != 0 ]; do
		echo "Comment souhaitez-vous effacer le disque?"
		echo  "1 \t Effacement complet"
		echo  "2 \t Effacement rapide "
		echo  "0 \t Annuler "
		read EFFACEMENT

		case $EFFACEMENT in
			2 )
				echo "C'est parti pour un effacement rapide :"
				sleep 1
				wodim blank=fast
				break
			;;
			1 )
				echo "C'est parti pour un effacement complet :"
				sleep 1
				wodim blank=all
				break
			;;
			* ) echo 'Veuillez entrer un choix valide' ;;
		esac
	done
}

echo '                     |//'
echo '                    (o o)'
echo '+-------------oOO----(_)---------------------+'
echo '|--------------------------------------------|'
echo '|---------------- ¤ BONJOUR ! ¤ -------------|'
echo '|----- ¤ Ce Script va vous permettre ¤ ------|'
echo '|--------- ¤ de graver facilement ¤ ---------|'
echo '|-------------- ¤ vos données ¤ -------------|'
echo '+--------------------oOO---------------------+'
echo '                   |__|__|'
echo '                    || ||'
echo '                   ooO Ooo'
echo " \n \n \n "

while [ "$GRAVURE" != 0 ]; do
	echo  "Que souhaitez-vous faire? (Entrez le numéro de votre choix) \n \n"
	echo  "1 \t Un disque de données "
	#echo  "2 \t Un disque audio "
	echo  "2 \t Graver une image iso "
	echo  "3 \t Effacer le disque "
	echo  "0 \t Quitter "
	read GRAVURE

case $GRAVURE in
	1 ) grave_donnees_ ;;
	#2 ) grave_audio_ ;;
	2 ) grave_iso_ ;;
	3 ) efface_disque_ ;;
	0 )
		echo '
                         ''~''
                        ( o o )
+------------------.oooO--(_)--Oooo.------------------+
|                                                     |
|                      À BIENTÔT                      |
|                    .oooO                            |
|                    (   )   Oooo.                    |
+---------------------\ (----(   )--------------------+
                       \_)    ) /
                             (_/
'
		exit 2
	;;
	* ) echo 'Veuillez entrer un choix valide' ;;
esac
done


exit 0