CLEANUP+=("$cmd")
}
+report_error() {
+ if [ ${#ERRORS[*]} -eq 0 ]; then
+ # No error message. Print stderr
+ local lines=$(tail --lines=${STDERR_LINE_SIZE} "$STDERR_FILE" | wc -l)
+ echo -n "STDERR:${lines}:" > "$MONITOR"
+ tail --lines=$lines "$STDERR_FILE" > "$MONITOR"
+ else
+ echo -n "ERROR:" > "$MONITOR"
+ for line in "${ERRORS[@]}"; do
+ echo "$line" > "$MONITOR"
+ done
+ fi
+}
+
log_error() {
ERRORS+=("$@")
echo "ERROR: $@" | tee $RESULT >&2
+ report_error
exit 1
}
echo "$MSG_TYPE_TASK_END:${PROGNAME:2}" > "$MONITOR"
}
-report_error() {
- if [ ${#ERRORS[*]} -eq 0 ]; then
- # No error message. Print stderr
- local lines=$(tail --lines=${STDERR_LINE_SIZE} "$STDERR_FILE" | wc -l)
- echo -n "STDERR:${lines}:" > "$MONITOR"
- tail --lines=$lines "$STDERR_FILE" > "$MONITOR"
- else
- echo -n "ERROR:" > "$MONITOR"
- for line in "${ERRORS[@]}"; do
- echo "$line" > "$MONITOR"
- done
- fi
-}
-
system_poweroff() {
echo o > /proc/sysrq-trigger
}
if [ $rc -eq 0 ]; then
report_task_end
- else
- report_error
fi
cleanup