summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorshumakl <shumakl@purdue.edu>2014-04-04 14:16:19 -0400
committerLuke Shumaker <LukeShu@sbcglobal.net>2014-04-04 14:18:21 -0400
commit4e94d24958d214106462e6db17a9d4f7b8394cbb (patch)
treec19c69b73f0f3df1ed1b98696a00ef6cc3d82aba
parent84c044c2442ac3ab1ea327fc77c830ac26d9d187 (diff)
use cronic for cron/make-config
-rw-r--r--.config/cron/make-config2
-rwxr-xr-x.local/bin/cronic48
2 files changed, 49 insertions, 1 deletions
diff --git a/.config/cron/make-config b/.config/cron/make-config
index 448475b..516334a 100644
--- a/.config/cron/make-config
+++ b/.config/cron/make-config
@@ -1,2 +1,2 @@
# m h dom mon dow command
-*/5 * * * * . $HOME/.local/lib/path.sh && . $HOME/.local/lib/xdg.sh && make -C $XDG_CONFIG_HOME
+*/5 * * * * $HOME/.local/bin/cronic bash -c '{ . $HOME/.local/lib/path.sh && . $HOME/.local/lib/xdg.sh && make -C $XDG_CONFIG_HOME; } 2>&1'
diff --git a/.local/bin/cronic b/.local/bin/cronic
new file mode 100755
index 0000000..8536f29
--- /dev/null
+++ b/.local/bin/cronic
@@ -0,0 +1,48 @@
+#!/bin/bash
+
+# Cronic v2 - cron job report wrapper
+# Copyright 2007 Chuck Houpt. No rights reserved, whatsoever.
+# Public Domain CC0: http://creativecommons.org/publicdomain/zero/1.0/
+
+set -eu
+
+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 -f "$OUT"
+rm -f "$ERR"
+rm -f "$TRACE"