X-Git-Url: https://git.distorted.org.uk/~mdw/dvdrip/blobdiff_plain/7d29c3fb7b3836cd57262b55fae02847f123620f..410341025e517d40adc6e2efe122873a8b2c3657:/dvdrip-retry-botched-vobs diff --git a/dvdrip-retry-botched-vobs b/dvdrip-retry-botched-vobs index c281b60..0a171f3 100755 --- a/dvdrip-retry-botched-vobs +++ b/dvdrip-retry-botched-vobs @@ -1,8 +1,10 @@ #! /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 | while IFS= read -r r; do +find "$@" -type f -name "*.retry" -print | sort | while IFS= read -r r; do iso=${r%.retry}.iso want_id=$(dvd-id "$iso") @@ -13,20 +15,25 @@ find "$@" -type f -name "*.retry" -print | while IFS= read -r r; do case $id in "$want_id") break ;; "$last_wrong") ;; - *) echo "No, that's $id -- wanted $want_id..."; last_wrong=$id ;; + *) + 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" + "$DVD_SECTOR_COPY" -R"$r" "$dev" "$iso" - set +e; DVDCSS_CACHE=off dvd-check-keys -b"$r.new" "$dev"; rc=$?; set -e + 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..." ;; + 1,*) echo "Still broken! Let's try again..."; mv "$r.new" "$r"; ;; *) echo "Failed! :-("; exit 2 ;; esac done + eject "$dev" done