#! /bin/sh -e dev=${DVDRIP_DEVICE-/dev/dvd} : ${DVD_SECTOR_COPY=dvd-sector-copy} : ${DVD_CHECK_KEYS=dvd-check-keys} find "$@" -type f -name "*.retry" -print | sort | while IFS= read -r r; do iso=${r%.retry}.iso want_id=$(dvd-id "$iso") last_wrong=nil echo "Insert $iso..." while :; do id=$(dvd-id "$dev") case $id in "$want_id") break ;; "$last_wrong") ;; *) echo "No, that's $id -- wanted $want_id..." last_wrong=$id eject "$dev" ;; esac sleep 2 done for try in 3 2 1 0; do "$DVD_SECTOR_COPY" -R"$r" "$dev" "$iso" set +e; DVDCSS_CACHE=off "$DVD_CHECK_KEYS" -b"$r.new" "$dev"; rc=$?; set -e case $rc,$try in 0,*) rm -f "$r"; break ;; 1,0) echo "Giving up :-("; mv "$r.new" "$r"; break ;; 1,*) echo "Still broken! Let's try again..."; mv "$r.new" "$r"; ;; *) echo "Failed! :-("; exit 2 ;; esac done eject "$dev" done