set -e
+exec 4>&1
+rc=0
for check in check.d/[!#]*[!~]; do
- { { { set +e; "$check"; rc=$?; set -e
- case $rc in 0) ;; *) echo >&2 "failed (rc = $rc)" ;; esac
- } >&3; } 2>&1 |
- sed 's/^/E: /'
- } 3>&1 | {
- if read line; then
- echo "## ${check##*/}"
- echo "$line"
- cat
- echo
- fi
- }
+ 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