X-Git-Url: https://git.distorted.org.uk/~mdw/dvdrip/blobdiff_plain/54c4e0c3140db9cb4d16528a879387a29a2e90ce..39eec43ebb1367dffbc6911846dbcb7e673891db:/dvdrip-retry-botched-vobs diff --git a/dvdrip-retry-botched-vobs b/dvdrip-retry-botched-vobs new file mode 100755 index 0000000..4504aad --- /dev/null +++ b/dvdrip-retry-botched-vobs @@ -0,0 +1,27 @@ +#! /bin/sh -e + +dev=${DVDRIP_DEVICE-/dev/dvd} + +find "$@" -type f -name "*.retry" -print | while IFS= read -r r; do + iso=${r%.retry}.iso + + want_id=$(dvd-id "$iso") + echo "Insert $iso..." + while :; do + id=$(dvd-id "$dev") + case $id in "$want_id") break ;; esac + sleep 2 + done + + for try in 3 2 1 0; do + dvd-sector-copy -R"$r" "$dev" "$iso" + + set +e; DVDCSS_CACHE=off dvd-check-keys -b"$r.new" "$dev"; rc=$?; set -e + case $rc,$try in + 0,*) rm -f "$retry"; break ;; + 1,0) echo "Giving up :-("; mv "$r.new" "$r"; break ;; + 1,*) echo "Still broken! Let's try again..." ;; + *) echo "Failed! :-("; exit 2 ;; + esac + done +done