Mercurial > ec-dotfiles
comparison bin/cronic @ 492:0c2d6458248e
Add cronic.
author | edogawaconan <me@myconan.net> |
---|---|
date | Fri, 08 Nov 2013 17:56:37 +0900 |
parents | |
children | 8fa04c2a9896 |
comparison
equal
deleted
inserted
replaced
491:c3c2353044ad | 492:0c2d6458248e |
---|---|
1 #!/usr/bin/env bash | |
2 | |
3 # Mod by edogawaconan: | |
4 # - `/usr/bin/env bash` | |
5 # Source: http://habilis.net/cronic/ | |
6 # | |
7 # Cronic v2 - cron job report wrapper | |
8 # Copyright 2007 Chuck Houpt. No rights reserved, whatsoever. | |
9 # Public Domain CC0: http://creativecommons.org/publicdomain/zero/1.0/ | |
10 | |
11 set -eu | |
12 | |
13 OUT=/tmp/cronic.out.$$ | |
14 ERR=/tmp/cronic.err.$$ | |
15 TRACE=/tmp/cronic.trace.$$ | |
16 | |
17 set +e | |
18 "$@" >$OUT 2>$TRACE | |
19 RESULT=$? | |
20 set -e | |
21 | |
22 PATTERN="^${PS4:0:1}\\+${PS4:1}" | |
23 if grep -aq "$PATTERN" $TRACE | |
24 then | |
25 ! grep -av "$PATTERN" $TRACE > $ERR | |
26 else | |
27 ERR=$TRACE | |
28 fi | |
29 | |
30 if [ $RESULT -ne 0 -o -s "$ERR" ] | |
31 then | |
32 echo "Cronic detected failure or error output for the command:" | |
33 echo "$@" | |
34 echo | |
35 echo "RESULT CODE: $RESULT" | |
36 echo | |
37 echo "ERROR OUTPUT:" | |
38 cat "$ERR" | |
39 echo | |
40 echo "STANDARD OUTPUT:" | |
41 cat "$OUT" | |
42 if [ $TRACE != $ERR ] | |
43 then | |
44 echo | |
45 echo "TRACE-ERROR OUTPUT:" | |
46 cat "$TRACE" | |
47 fi | |
48 fi | |
49 | |
50 rm -f "$OUT" | |
51 rm -f "$ERR" | |
52 rm -f "$TRACE" |