chiark / gitweb /
check.d/50.updates: Maintain sets of packages, rather than lists.
[rcheck] / check
CommitLineData
f5f6d9ac
MW
1#! /bin/sh
2###
3### Run a collection of everyday health checks.
4
5set -e
6
ff90728f
MW
7fix () {
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}
18min=$(fix ${1-0}) max=$(fix ${2-99})
19
b742457e
MW
20exec 4>&1
21rc=0
f5f6d9ac 22for 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 44done
b742457e
MW
45
46exit $rc