chiark / gitweb /
dvd-sector-copy.c: Fix botched debugging code.
[dvdrip] / dvdrip-retry-botched-vobs
1 #! /bin/sh -e
2
3 dev=${DVDRIP_DEVICE-/dev/dvd}
4 : ${DVD_SECTOR_COPY=dvd-sector-copy}
5 : ${DVD_CHECK_KEYS=dvd-check-keys}
6
7 find "$@" -type f -name "*.retry" -print | sort | while IFS= read -r r; do
8   iso=${r%.retry}.iso
9
10   want_id=$(dvd-id "$iso")
11   last_wrong=nil
12   echo "Insert $iso..."
13   while :; do
14     id=$(dvd-id "$dev")
15     case $id in
16       "$want_id") break ;;
17       "$last_wrong") ;;
18       *)
19         echo "No, that's $id -- wanted $want_id..."
20         last_wrong=$id
21         eject "$dev"
22         ;;
23     esac
24     sleep 2
25   done
26
27   for try in 3 2 1 0; do
28     "$DVD_SECTOR_COPY" -R"$r" "$dev" "$iso"
29
30     set +e; DVDCSS_CACHE=off "$DVD_CHECK_KEYS" -b"$r.new" "$dev"; rc=$?; set -e
31     case $rc,$try in
32       0,*) rm -f "$r"; break ;;
33       1,0) echo "Giving up :-("; mv "$r.new" "$r"; break ;;
34       1,*) echo "Still broken!  Let's try again..."; mv "$r.new" "$r"; ;;
35       *) echo "Failed! :-("; exit 2 ;;
36     esac
37   done
38   eject "$dev"
39 done