diff options
Diffstat (limited to 'tools/mail_error')
-rwxr-xr-x | tools/mail_error | 22 |
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 |