#! /bin/sh . .config [ -f "$cd_image_iso" ] && die "$cd_image_iso found, remove it first" [ -d "$source_dir" ] && die "$source_dir found, remove it first" while getopts bdl:Ow opt; do case $opt in b ) blank=blank ;; d ) dvd=dvd ;; l ) label="$OPTARG" ;; O ) over=over ;; w ) cdrw=cdrw ;; esac done shift `expr $OPTIND - 1` if [ -z "$cdrw" ]; then device="$dev_cdrom" fs="$fs_cdrom" eject="$eject_cdrom" else device="$dev_cdrw" fs="$fs_cdrw" eject="$eject_cdrw" fi wait-cd "$device" if [ -z "$label" ]; then label="`get_label \"$device\"`" if [ -z "$label" ]; then echo -n "Enter label: " read label fi fi echo "Reading source disk, please wait..." mount "$fs" || die "Cannot mount the source disk" cpdir "$fs" "$work_dir" || die "Cannot copy the source disk" eject "$eject" chmod -R u+w "$work_dir" mv "$work_dir" "$source_dir" echo "" if [ -z "$dvd" ]; then mk-image "$label" || die "Cannot make new disk image" ls-image fi echo "" if [ -z "$dvd" ]; then until wodim dev="$dev_scsi" -atip >/dev/null 2>&1; do echo "Insert blank disk into CD/DVD-Burner and press Enter..." read done if [ "$blank" = blank ]; then blank+"$over"burn else "$over"burn fi || die "Error burning disk" else echo "Insert blank disk into CD/DVD-Burner and press Enter..." read dvdrec-data "$label" || die "Error burning disk" fi echo "" if [ -z "$cdrw" ]; then echo "Insert newly written disk into CD/DVD-ROM and press Enter..." read fi echo "Comparing, please wait..." echo "" mount "$fs" || die "Cannot mount the disk" cd "$source_dir" if diff -r --speed-large-files . "$fs"; then echo "The disk has been successfully copied!" echo "" else exit 1 fi eject "$eject" & if [ -z "$dvd" ]; then rm -r "$cd_image_iso" fi exec rm -r "$source_dir"