Commit | Line | Data |
---|---|---|
f5f6d9ac MW |
1 | #! /bin/sh |
2 | ### | |
3 | ### Run a collection of everyday health checks. | |
4 | ||
5 | set -e | |
6 | ||
ff90728f MW |
7 | fix () { |
8 | n=$1 | |
9 | while :; do | |
10 | case $n in | |
11 | 0) break ;; | |
12 | 0*) n=${n#0} ;; | |
13 | *) break ;; | |
14 | esac | |
15 | done | |
16 | echo $n | |
17 | } | |
18 | min=$(fix ${1-0}) max=$(fix ${2-99}) | |
19 | ||
b742457e MW |
20 | exec 4>&1 |
21 | rc=0 | |
f5f6d9ac | 22 | for check in check.d/[!#]*[!~]; do |
ff90728f MW |
23 | base=${check##*/} |
24 | seq=${base%%[!0-9]*} | |
25 | if [ $min -gt $seq -o $seq -gt $max ]; then continue; fi | |
26 | ||
b742457e MW |
27 | nrc=$( |
28 | exec 5>&1 | |
29 | { { { set +e; "$check"; rc=$?; set -e | |
30 | echo $rc >&5 | |
31 | case $rc in 0) ;; *) echo >&2 "failed (rc = $rc)" ;; esac | |
32 | } >&3; } 2>&1 | | |
33 | sed 's/^/E: /' | |
34 | } 3>&1 | { | |
35 | if IFS= read -r line; then | |
36 | echo "## ${check##*/}" | |
37 | echo "$line" | |
38 | cat | |
39 | echo | |
40 | fi | |
41 | } >&4 | |
42 | ) | |
43 | if [ $nrc -gt $rc ]; then rc=$nrc; fi | |
f5f6d9ac | 44 | done |
b742457e MW |
45 | |
46 | exit $rc |