#!/bin/bash
-# Copyright (C) 2016 Ian Kelling
+# I, Ian Kelling, follow the GNU license recommendations at
+# https://www.gnu.org/licenses/license-recommendations.en.html. They
+# recommend that small programs, < 300 lines, be licensed under the
+# Apache License 2.0. This file contains or is part of one or more small
+# programs. If a small program grows beyond 300 lines, I plan to switch
+# its license to GPL.
+
+# Copyright 2024 Ian Kelling
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# See the License for the specific language governing permissions and
# limitations under the License.
+
case $1 in
-h|--help)
cat <<'EOF'
-usage: logmail CMD [ARGS...]
+usage: failmail CMD [ARGS...]
Send mail in case of failure of CMD
+
+Emails to $MAILTO or if unset, $USER@localhost
EOF
exit 0
;;
esac
+mailto=$USER@localhost
+if [[ $MAILTO ]]; then
+ mailto=$MAILTO
+fi
+
t=$(mktemp)
-if ! "$@" &>"$t"; then
- mail -s "$HOSTNAME: $*" $USER@localhost <"$t"
+code=0
+"$@" &>"$t" || code=$?
+if (( code )); then
+ mail -s "$HOSTNAME: code: $code cmd: $*" $mailto <"$t"
rm "$t"
fi
exit 0