[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: gravure



Le 2002.10.23 00:46, Jean-Paul Lacquement a écrit :
Salut!

Quelqu'un pourrait-il me conseiller un logiciel de
gravure, qui prenne en charge les graveurs IDE,
autre que XCDROAST qui necessite une résolution de 1024x768?

Merci.


Je te propose le mien.
Il ne dépend que de 'mkisofs' et 'cdrecord'.

Il n'est pas graphique mais ça ne l'empêche pas d'être simple à l'utilisation.

Pour info:
Il ne génère pas d'image ISO sur le disk (donc s'assurer que le débit de la source est au moins aussi rapide que celui de la destination pour les vieux graveurs). Il fait d'office du multi-sessions et donc rajoute lors d'une seconde gravure.

Romuald.

#!/bin/bash
#
# CD Writing script Copyright (C) 2002 by Romuald DELAVERGNE
# It can be redistributed under the terms of the GNU General Public License.
#

usage() {
  [ -n "$1" ] && echo -e "$0: $1"
  echo "Usage: $0 [OPTION]... [DIRECTORY]... [FILE]..."
  echo "  --help, -h                    show this help"
echo " --verbose, -v increment general verbose level by one" echo " --speed=# set speed of drive or CD limitation" echo " --device=scsibus,target,lun force device if autodetection doesn't work"
  echo "  --boot=file                   make the CD bootable using 'file'"
  echo "  --erase                       erase CD-RW before writing"
  [ -n "$1" ] && exit 1 || exit 0
}

error() {
  [ -n "$1" ] && echo -e "$0: $1"
  exit 1
}

# Initializations
fileDevice=/dev/graveur  # May be changed. Depend on your configuration
mkisofsOpts=""
cdrecordOpts=""
datas=""
speed=8

# Parse arguments
while [ -n "$1" ]; do
  param=$1
  case $param in
    --help|-h)
      usage
      ;;
    --verbose|-v)
      verbose="true"
      ;;
    --erase)
      erase="true"
      ;;
    --speed=*)
      speed=${param##--speed=}
      ;;
    --device=*)
      device=${param##--device=}
      ;;
    --boot=*)
      boot=${param##--boot=}
      ;;
    -*)
      usage "$param: unknow option"
      ;;
    *)
      datas="$datas $param"
      ;;
  esac
  shift
done

# Some checks
[ -z "$datas" ] && usage "missing file(s) or directory(ies) for datas"
for file in $datas; do
  [ -r "$file" ] || error "$file: No such file or directory or unreadable"
done
[ -r "$fileDevice" ] || error "$fileDevice: No such file or directory\nChange fileDevice variable in the script"

# Options from command line
[ -n "$speed" ] && cdrecordOpts="$cdrecordOpts speed=$speed"
[ "$verbose" = "true" ] && cdrecordOpts="$cdrecordOpts -v"
[ "$erase" = "true" ] && cdrecordOpts="$cdrecordOpts -blank=fast"
[ -n "$boot" ] && mkisofsOpts="$mkisofsOpts -b $boot -c `dirname $boot`/boot.catalog"

# Try to autodetect CD-writer
if [ -z "$device" ]; then
  device=`cdrecord --scanbus | awk '/CD-ROM/{print $1}'`
  nb=`echo "$device" | wc -w`
[ $nb -eq 0 ] && error "no CD-writer found\nTry to force with --device option" [ $nb -gt 1 ] && error "several CD-writes found\nTry to force with --device option"
fi

# Try to autodetect CD-R/CD-RW. There is four cases:
#   1) no CD => error
#   2) a writed CD with no multi-session => error
#   3) a blank CD => write the first session
#   4) a writed CD with multi-session => write the next session
nextTrack=`cdrecord -msinfo dev=$device 2>/dev/null`
[ $? -ne 0 ] && error 1 "no CD-R/CD-RW found"
if [ "$erase" != "true" ]; then
  if [ -z "$nextTrack" ]; then
    mount $fileDevice 2>/dev/null
    if [ $? -eq 0 ]; then
      umount $fileDevice
      error "This is not a multi-session CD"
    fi
  else
    mkisofsOpts="$mkisofsOpts -C $nextTrack -M $fileDevice"
  fi
fi

mkisofs -r $mkisofsOpts $datas | \
cdrecord -multi fs=8m dev=$device $cdrecordOpts -

exit $?



Reply to: