| 1 | #! /bin/bash -e |
| 2 | |
| 3 | prog=${0##*/} |
| 4 | bogus=nil |
| 5 | usage () { |
| 6 | cat <<EOF |
| 7 | usage: $prog DIR ... |
| 8 | EOF |
| 9 | } |
| 10 | while getopts "h" opt; do |
| 11 | case $opt in |
| 12 | h) usage; exit 0 ;; |
| 13 | *) bogus=t ;; |
| 14 | esac |
| 15 | done |
| 16 | shift $(( $OPTIND - 1 )) |
| 17 | case $# in 0) bogus=t ;; esac |
| 18 | case $bogus in t) usage >&2; exit 2 ;; esac |
| 19 | |
| 20 | if [ -t 1 ]; then red=$(tput setaf 1) green=$(tput setaf 2) plain=$(tput op) |
| 21 | else red= green= plain=; fi |
| 22 | |
| 23 | DVDCSS_CACHE=off; export DVDCSS_CACHE |
| 24 | find "$@" -type f -name "*.iso" | sort | while IFS= read -r iso; do |
| 25 | echo -n "check $iso..." |
| 26 | retry=${iso%.iso}.retry |
| 27 | set +e; dvd-check-keys -b"$retry.new" "$iso"; rc=$?; set -e |
| 28 | case $rc in |
| 29 | 0) rm -f "$retry" echo " ${green}ok${plain}" ;; |
| 30 | 1) mv "$retry.new" "$retry"; echo " ${red}FAILED${plain}" ;; |
| 31 | *) echo " ${red}ERROR${plain}"; exit 2 ;; |
| 32 | esac |
| 33 | done |