@@ -289,34 +289,62 @@ else
289289 " Run deploy.sh to generate"
290290fi
291291
292- if [ -f " $BAUDBOT_INTEGRITY_STATUS_FILE " ]; then
293- status_value=" $( jq -r ' .status // "unknown"' " $BAUDBOT_INTEGRITY_STATUS_FILE " 2> /dev/null || echo " unknown" ) "
294- status_checked_at=" $( jq -r ' .checked_at // "unknown"' " $BAUDBOT_INTEGRITY_STATUS_FILE " 2> /dev/null || echo " unknown" ) "
295- status_missing=" $( jq -r ' .missing_files // 0' " $BAUDBOT_INTEGRITY_STATUS_FILE " 2> /dev/null || echo " 0" ) "
296- status_mismatches=" $( jq -r ' .hash_mismatches // 0' " $BAUDBOT_INTEGRITY_STATUS_FILE " 2> /dev/null || echo " 0" ) "
297-
298- case " $status_value " in
299- pass)
300- ok " Last startup integrity check passed ($status_checked_at )"
301- ;;
302- warn)
303- finding " WARN" " Last startup integrity check reported issues" \
304- " $status_checked_at — missing: $status_missing , mismatched: $status_mismatches "
305- ;;
306- fail)
307- finding " CRITICAL" " Last startup integrity check failed" \
308- " $status_checked_at — missing: $status_missing , mismatched: $status_mismatches "
309- ;;
310- skipped)
311- finding " WARN" " Last startup integrity check was skipped/disabled" " $status_checked_at "
312- ;;
313- * )
314- finding " INFO" " Startup integrity status unknown" " $BAUDBOT_INTEGRITY_STATUS_FILE "
315- ;;
316- esac
292+ INTEGRITY_CHECK_SCRIPT=" $BAUDBOT_SRC /bin/checks/integrity-status.mjs"
293+ INTEGRITY_CHECK_NODE_BIN=" $( bb_resolve_runtime_node_bin " $BAUDBOT_HOME " 2> /dev/null || true) "
294+ if [ -z " $INTEGRITY_CHECK_NODE_BIN " ] && command -v node > /dev/null 2>&1 ; then
295+ INTEGRITY_CHECK_NODE_BIN=" $( command -v node) "
296+ fi
297+
298+ if [ -n " $INTEGRITY_CHECK_NODE_BIN " ] && [ -f " $INTEGRITY_CHECK_SCRIPT " ]; then
299+ integrity_payload=" $( $INTEGRITY_CHECK_NODE_BIN " $INTEGRITY_CHECK_SCRIPT " " $BAUDBOT_INTEGRITY_STATUS_FILE " 2> /dev/null || true) "
300+ else
301+ integrity_payload=" "
302+ fi
303+
304+ if [ -n " $integrity_payload " ]; then
305+ status_exists=" $( printf ' %s' " $integrity_payload " | json_get_string_stdin " exists" 2> /dev/null || true) "
306+ status_value=" $( printf ' %s' " $integrity_payload " | json_get_string_stdin " status" 2> /dev/null || true) "
307+ status_checked_at=" $( printf ' %s' " $integrity_payload " | json_get_string_stdin " checked_at" 2> /dev/null || true) "
308+ status_missing=" $( printf ' %s' " $integrity_payload " | json_get_string_stdin " missing_files" 2> /dev/null || true) "
309+ status_mismatches=" $( printf ' %s' " $integrity_payload " | json_get_string_stdin " hash_mismatches" 2> /dev/null || true) "
310+
311+ [ -n " $status_exists " ] || status_exists=" 0"
312+ [ -n " $status_value " ] || status_value=" unknown"
313+ [ -n " $status_checked_at " ] || status_checked_at=" unknown"
314+ [ -n " $status_missing " ] || status_missing=" 0"
315+ [ -n " $status_mismatches " ] || status_mismatches=" 0"
316+
317+ if [ " $status_exists " != " 1" ]; then
318+ finding " WARN" " No startup integrity status found" \
319+ " Expected: $BAUDBOT_INTEGRITY_STATUS_FILE (restart agent after deploy)"
320+ else
321+ case " $status_value " in
322+ pass)
323+ ok " Last startup integrity check passed ($status_checked_at )"
324+ ;;
325+ warn)
326+ finding " WARN" " Last startup integrity check reported issues" \
327+ " $status_checked_at — missing: $status_missing , mismatched: $status_mismatches "
328+ ;;
329+ fail)
330+ finding " CRITICAL" " Last startup integrity check failed" \
331+ " $status_checked_at — missing: $status_missing , mismatched: $status_mismatches "
332+ ;;
333+ skipped)
334+ finding " WARN" " Last startup integrity check was skipped/disabled" " $status_checked_at "
335+ ;;
336+ * )
337+ finding " INFO" " Startup integrity status unknown" " $BAUDBOT_INTEGRITY_STATUS_FILE "
338+ ;;
339+ esac
340+ fi
317341else
318- finding " WARN" " No startup integrity status found" \
319- " Expected: $BAUDBOT_INTEGRITY_STATUS_FILE (restart agent after deploy)"
342+ if [ -f " $BAUDBOT_INTEGRITY_STATUS_FILE " ]; then
343+ finding " INFO" " Startup integrity status unreadable" " $BAUDBOT_INTEGRITY_STATUS_FILE "
344+ else
345+ finding " WARN" " No startup integrity status found" \
346+ " Expected: $BAUDBOT_INTEGRITY_STATUS_FILE (restart agent after deploy)"
347+ fi
320348fi
321349echo " "
322350
0 commit comments