aboutsummaryrefslogtreecommitdiff
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 00000000..4349c21d
--- /dev/null
+++ b/tools/mail_error
@@ -0,0 +1,22 @@
+#!/bin/bash
+# mail_error -o file -m email_address command
+# Runs command and redirects all output to file
+# If command rc != 0, sends file to email_address
+
+function die { echo $1 ; exit 1; }
+
+while getopts "o:m:" c; do
+ case $c in
+ o) output_file=$OPTARG;;
+ m) email=$OPTARG;;
+ \*) echo "oops";;
+ esac
+done
+shift $(($OPTIND-1))
+echo "output_file=$output_file email=$email"
+
+[[ -z $1 ]] && die "Must specify command"
+
+if ! "$@" > $output_file 2>&1 ; then
+ mail -s "mail_error fail: $@" $email < $output_file
+fi