--- /dev/null
+#! /bin/bash -e
+
+prog=${0##*/}
+bogus=nil
+usage () {
+ cat <<EOF
+usage: $prog DIR ...
+EOF
+}
+while getopts "h" opt; do
+ case $opt in
+ h) usage; exit 0 ;;
+ *) bogus=t ;;
+ esac
+done
+shift $(( $OPTIND - 1 ))
+case $# in 0) bogus=t ;; esac
+case $bogus in t) usage >&2; exit 2 ;; esac
+
+if [ -t 1 ]; then red=$(tput setaf 1) green=$(tput setaf 2) plain=$(tput op)
+else red= green= plain=; fi
+
+DVDCSS_CACHE=off; export DVDCSS_CACHE
+find "$@" -type f -name "*.iso" | sort | while IFS= read -r iso; do
+ echo -n "check $iso..."
+ retry=${iso%.iso}.retry
+ set +e; dvd-check-keys -b"$retry.new" "$iso"; rc=$?; set -e
+ case $rc in
+ 0) rm -f "$retry" echo " ${green}ok${plain}" ;;
+ 1) mv "$retry.new" "$retry"; echo " ${red}FAILED${plain}" ;;
+ *) echo " ${red}ERROR${plain}"; exit 2 ;;
+ esac
+done