handle race condition
[log-quiet] / logmail
diff --git a/logmail b/logmail
index cac1e21372cb80389189987d2910279e125b235e..bece0ae8683ecd72818599f9a42dcb5d6e312200 100755 (executable)
--- a/logmail
+++ b/logmail
 # limitations under the License.
 
 case $1 in
-    -h|--help)
-        cat <<'EOF'
+  -h|--help)
+    cat <<'EOF'
 usage: logmail CMD [ARGS...]
 
 Send mail in case of output or failure of CMD
+
+Emails to $MAILTO or if unset, $USER@localhost
 EOF
-        exit 0
-        ;;
+    exit 0
+    ;;
 esac
 t=$(mktemp)
-if ! "$@" &>"$t" || [[ ! -s $t ]]; then
-    mail -s "$HOSTNAME: $*" $USER@localhost <"$t"
-    rm "$t"
+code=0
+"$@" &>"$t" || code=$?
+if (( code )) || [[ -s $t ]]; then
+  mail -s "$HOSTNAME: code: $code cmd: $*" $mailto <"$t"
+  rm "$t"
 fi
 exit 0