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