chiark / gitweb /
README
[post-pizza-notify.git] / onemethod
1 #!/bin/bash
2 set -e
3 usage () { cat <<END
4
5 usage: ./onemethod METHOD recipientsfile 'message'
6 see usage for notify
7
8 END
9 }
10
11 case "$#.$1" in
12 3.[^-]*)        ;;
13 *)              usage >&2; exit 1 ;;
14 esac
15
16 onemethod="$1"
17 rcpts="$2"
18 msg="$3"
19
20 exec <"$rcpts"
21 line=0
22 while read method data; do
23         line=$(( $line+1 ))
24         case "$method" in
25         #*|'')          continue ;;
26         [^a-z]*)        echo >&2 "huh ? $rcpts:$line: $method"; continue ;;
27         "$onemethod")   ;;
28         *)              continue ;;
29         esac
30         log=log-$method-$line.txt
31         exec >$log
32         set +e
33         printf >&2 "."
34         exec 3>&2 2>&1
35         set -x
36         ./"via-$method" "$msg" $data 2>&1
37         rc=$?
38         set +x
39         exec 2>&3 3>&-
40         set -e
41         if [ $rc != 0 ]; then
42                 printf >&2 -- "\n$method-FAIL:%s\n" $log
43         else
44                 printf >&2 " $method"
45         fi
46 done
47 exec >&2