48 lines
854 B
Plaintext
48 lines
854 B
Plaintext
|
#!/bin/bash
|
||
|
|
||
|
# Cronic v3 - cron job report wrapper
|
||
|
# Copyright 2007-2016 Chuck Houpt. No rights reserved, whatsoever.
|
||
|
# Public Domain CC0: http://creativecommons.org/publicdomain/zero/1.0/
|
||
|
|
||
|
set -eu
|
||
|
|
||
|
TMP=$(mktemp -d)
|
||
|
OUT=$TMP/cronic.out
|
||
|
ERR=$TMP/cronic.err
|
||
|
TRACE=$TMP/cronic.trace
|
||
|
|
||
|
set +e
|
||
|
"$@" >$OUT 2>$TRACE
|
||
|
RESULT=$?
|
||
|
set -e
|
||
|
|
||
|
PATTERN="^${PS4:0:1}\\+${PS4:1}"
|
||
|
if grep -aq "$PATTERN" $TRACE
|
||
|
then
|
||
|
! grep -av "$PATTERN" $TRACE > $ERR
|
||
|
else
|
||
|
ERR=$TRACE
|
||
|
fi
|
||
|
|
||
|
if [ $RESULT -ne 0 -o -s "$ERR" ]
|
||
|
then
|
||
|
echo "Cronic detected failure or error output for the command:"
|
||
|
echo "$@"
|
||
|
echo
|
||
|
echo "RESULT CODE: $RESULT"
|
||
|
echo
|
||
|
echo "ERROR OUTPUT:"
|
||
|
cat "$ERR"
|
||
|
echo
|
||
|
echo "STANDARD OUTPUT:"
|
||
|
cat "$OUT"
|
||
|
if [ $TRACE != $ERR ]
|
||
|
then
|
||
|
echo
|
||
|
echo "TRACE-ERROR OUTPUT:"
|
||
|
cat "$TRACE"
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
rm -rf "$TMP"
|