~mdw
/
dvdrip
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
multiprogress.[ch]: Publish the terminal-sequence output functions.
[dvdrip]
/
dvdrip-retry-botched-vobs
diff --git
a/dvdrip-retry-botched-vobs
b/dvdrip-retry-botched-vobs
index
4504aad
..
0a171f3
100755
(executable)
--- a/
dvdrip-retry-botched-vobs
+++ b/
dvdrip-retry-botched-vobs
@@
-1,27
+1,39
@@
#! /bin/sh -e
dev=${DVDRIP_DEVICE-/dev/dvd}
#! /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")
iso=${r%.retry}.iso
want_id=$(dvd-id "$iso")
+ last_wrong=nil
echo "Insert $iso..."
while :; do
id=$(dvd-id "$dev")
echo "Insert $iso..."
while :; do
id=$(dvd-id "$dev")
- case $id in "$want_id") break ;; esac
+ case $id in
+ "$want_id") break ;;
+ "$last_wrong") ;;
+ *)
+ echo "No, that's $id -- wanted $want_id..."
+ last_wrong=$id
+ eject "$dev"
+ ;;
+ esac
sleep 2
done
for try in 3 2 1 0; do
sleep 2
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
case $rc,$try in
- 0,*) rm -f "$r
etry
"; break ;;
+ 0,*) rm -f "$r"; break ;;
1,0) echo "Giving up :-("; mv "$r.new" "$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
*) echo "Failed! :-("; exit 2 ;;
esac
done
+ eject "$dev"
done
done