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