Commit | Line | Data |
---|---|---|
1 | #! /bin/sh | |
2 | ### | |
3 | ### Run a collection of everyday health checks. | |
4 | ||
5 | set -e | |
6 | ||
7 | exec 4>&1 | |
8 | rc=0 | |
9 | for check in check.d/[!#]*[!~]; do | |
10 | nrc=$( | |
11 | exec 5>&1 | |
12 | { { { set +e; "$check"; rc=$?; set -e | |
13 | echo $rc >&5 | |
14 | case $rc in 0) ;; *) echo >&2 "failed (rc = $rc)" ;; esac | |
15 | } >&3; } 2>&1 | | |
16 | sed 's/^/E: /' | |
17 | } 3>&1 | { | |
18 | if IFS= read -r line; then | |
19 | echo "## ${check##*/}" | |
20 | echo "$line" | |
21 | cat | |
22 | echo | |
23 | fi | |
24 | } >&4 | |
25 | ) | |
26 | if [ $nrc -gt $rc ]; then rc=$nrc; fi | |
27 | done | |
28 | ||
29 | exit $rc |