Merge branch 'master' of git.distorted.org.uk:~mdw/publish/public-git/dvdrip
[dvdrip] / dvdrip-retry-botched-vobs
index 579537e..0a171f3 100755 (executable)
@@ -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")
@@ -23,13 +25,13 @@ find "$@" -type f -name "*.retry" -print | while IFS= read -r r; do
   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