summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xtools/mail_error22
1 files changed, 22 insertions, 0 deletions
diff --git a/tools/mail_error b/tools/mail_error
new file mode 100755
index 0000000..4349c21
--- /dev/null
+++ b/tools/mail_error
@@ -0,0 +1,22 @@
1#!/bin/bash
2# mail_error -o file -m email_address command
3# Runs command and redirects all output to file
4# If command rc != 0, sends file to email_address
5
6function die { echo $1 ; exit 1; }
7
8while getopts "o:m:" c; do
9 case $c in
10 o) output_file=$OPTARG;;
11 m) email=$OPTARG;;
12 \*) echo "oops";;
13 esac
14done
15shift $(($OPTIND-1))
16echo "output_file=$output_file email=$email"
17
18[[ -z $1 ]] && die "Must specify command"
19
20if ! "$@" > $output_file 2>&1 ; then
21 mail -s "mail_error fail: $@" $email < $output_file
22fi