Commit | Line | Data |
---|---|---|
39eec43e MW |
1 | #! /bin/sh -e |
2 | ||
3 | dev=${DVDRIP_DEVICE-/dev/dvd} | |
4 | ||
5db44c22 | 5 | find "$@" -type f -name "*.retry" -print | sort | while IFS= read -r r; do |
39eec43e MW |
6 | iso=${r%.retry}.iso |
7 | ||
8 | want_id=$(dvd-id "$iso") | |
91e3b203 | 9 | last_wrong=nil |
39eec43e MW |
10 | echo "Insert $iso..." |
11 | while :; do | |
12 | id=$(dvd-id "$dev") | |
91e3b203 MW |
13 | case $id in |
14 | "$want_id") break ;; | |
15 | "$last_wrong") ;; | |
021aa6e7 MW |
16 | *) |
17 | echo "No, that's $id -- wanted $want_id..." | |
18 | last_wrong=$id | |
19 | eject "$dev" | |
20 | ;; | |
91e3b203 | 21 | esac |
39eec43e MW |
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 | |
7d29c3fb | 30 | 0,*) rm -f "$r"; break ;; |
39eec43e | 31 | 1,0) echo "Giving up :-("; mv "$r.new" "$r"; break ;; |
9384977e | 32 | 1,*) echo "Still broken! Let's try again..."; mv "$r.new" "$r"; ;; |
39eec43e MW |
33 | *) echo "Failed! :-("; exit 2 ;; |
34 | esac | |
35 | done | |
021aa6e7 | 36 | eject "$dev" |
39eec43e | 37 | done |