fix: auto-repair broken recipe.toml symlinks in build preflight

Detects broken recipe.toml symlinks in local/recipes/ (self-referencing
corruption from unknown source) and auto-restores from git before build.
Prevents 'Package not found' errors when recipe.toml files are unreadable.
This commit is contained in:
2026-07-12 18:00:45 +03:00
parent 84a55a8cc7
commit 67bce0d534
+14
View File
@@ -33,6 +33,20 @@ cd "$PROJECT_ROOT"
echo ">>> Build preflight: $CONFIG"
# Defensive: detect and repair broken recipe.toml symlinks in local/recipes/.
# These are tracked as regular files in git — a broken symlink means corruption.
broken_recipes=$(find local/recipes -name "recipe.toml" -xtype l 2>/dev/null | wc -l)
if [ "$broken_recipes" -gt 0 ]; then
echo ">>> WARNING: $broken_recipes broken recipe.toml symlinks detected — auto-repairing from git..." >&2
find local/recipes -name "recipe.toml" -xtype l -exec git checkout -q -- {} \; 2>/dev/null
remaining=$(find local/recipes -name "recipe.toml" -xtype l 2>/dev/null | wc -l)
if [ "$remaining" -gt 0 ]; then
echo ">>> ERROR: $remaining recipe.toml files could not be restored. Build may fail." >&2
else
echo ">>> Repaired: all recipe.toml files restored from git."
fi
fi
if [ -x "$SCRIPT_DIR/verify-overlay-integrity.sh" ]; then
if ! "$SCRIPT_DIR/verify-overlay-integrity.sh" --quiet; then
echo ">>> Preflight note: overlay integrity script reported legacy issues; continuing with build-focused checks."