X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=failmail;h=6bb1e94cf941381b7c899e9de06ab423de15f77d;hb=refs%2Fheads%2Fmaster;hp=377564e294b6d5a038b1bec39352f84de32ace15;hpb=ea9d543d812b5ec13d4d3c6b424626f3afaaa5dc;p=log-quiet diff --git a/failmail b/failmail index 377564e..6bb1e94 100755 --- a/failmail +++ b/failmail @@ -1,5 +1,12 @@ #!/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. @@ -13,20 +20,30 @@ # 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