#! /bin/sh ### ### Run a collection of everyday health checks. set -e exec 4>&1 rc=0 for check in check.d/[!#]*[!~]; do nrc=$( exec 5>&1 { { { set +e; "$check"; rc=$?; set -e echo $rc >&5 case $rc in 0) ;; *) echo >&2 "failed (rc = $rc)" ;; esac } >&3; } 2>&1 | sed 's/^/E: /' } 3>&1 | { if IFS= read -r line; then echo "## ${check##*/}" echo "$line" cat echo fi } >&4 ) if [ $nrc -gt $rc ]; then rc=$nrc; fi done exit $rc