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