#!/bin/bash
# mail_error -o file -m email_address command
# Runs command from cron and redirects all output to file
# If command rc != 0, sends output to email_address

function die { echo $1 ; exit 1; }

# Must be export so that sfsnapshot uses correct versions
# of GNU toolchain
export PATH=$HOME/bin:$HOME/local/bin:$PATH

while getopts "o:m:" c; do
	case $c in
		o) output_file=$OPTARG;;
		m) email=$OPTARG;;
		\*) echo "oops";;
	esac
done
shift $(($OPTIND-1))

[[ -z $1 ]] && die "Must specify command"

if ! "$@" > $output_file 2>&1 ; then
	mail -s "mail_error fail: $1" $email < $output_file
fi