Files
RedBear-OS/scripts/validate-collision-log.sh
T
vasilito ffbe098ef8 config: add tlc to redbear-mini and redbear-full; create recipe symlink
TLC (Twilight Commander) was missing from both ISO configs. Added
tlc = {} to [packages] in redbear-mini.toml and redbear-full.toml.
Created missing symlink: recipes/tui/tlc -> ../../local/recipes/tui/tlc.
2026-06-19 11:47:25 +03:00

46 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
# validate-collision-log.sh — Check build output for CollisionTracker findings
#
# Scans the build directory for any log files containing CollisionTracker
# output ([COLLISION-ERROR] or [COLLISION-WARN] markers). The runtime
# CollisionTracker runs during image assembly in redox_installer.
#
# Exit codes:
# 0 — No collision errors found
# 1 — Collision errors detected
set -euo pipefail
build_dir="${1:?Usage: validate-collision-log.sh <build-dir>}"
errors=0
warnings=0
if [ -d "$build_dir" ]; then
while IFS= read -r logfile; do
file_errors=$(grep -c '\[COLLISION-ERROR\]' "$logfile" 2>/dev/null || true)
file_warnings=$(grep -c '\[COLLISION-WARN\]' "$logfile" 2>/dev/null || true)
if [ "$file_errors" -gt 0 ] || [ "$file_warnings" -gt 0 ]; then
echo " $logfile: $file_errors error(s), $file_warnings warning(s)"
errors=$((errors + file_errors))
warnings=$((warnings + file_warnings))
fi
done < <(find "$build_dir" -name '*.log' -type f 2>/dev/null)
fi
echo "=== CollisionTracker log validation ==="
echo " Errors: $errors, Warnings: $warnings"
if [ "$errors" -gt 0 ]; then
echo "FAILED: $errors collision error(s) in build logs" >&2
echo " The CollisionTracker detected init service or environment file collisions." >&2
echo " Fix: Move config [[files]] init services from /usr/lib/init.d/ to /etc/init.d/" >&2
exit 1
fi
if [ "$warnings" -gt 0 ]; then
echo "WARN: $warnings non-critical collision(s) detected (not blocking)"
fi
echo "PASSED: No collision errors"