Files
romfast-website/verify-cleanup.sh
Marius Mutu 61844c8b57 chore(cleanup): curățare masivă site Romfast — 29 ștergeri, design unitar, 404 custom
Faza A: șterge 29 fișiere orfane/duplicate (placeholder-e roa/2-5, module abandonate,
chatbot-uri experimentale, politica root duplicat, stub romfastsuport/index.html)

Faza C: design unitar pe 25 pagini rămase
- Navbar duplicate fix (mobile-class leaked în desktop nav)
- Hub aplicatii-erp.html: 6 carduri 2x3 simetric + card ROA AUTO nou
- Footer flex layout + copy "Ghid instalare ROA Client" (înlocuiește "Descarcă")
- Fonts normalizate la Inter:wght@300;400;500;600;700;800 (1 variant unic)
- href-uri interne corectate: politica → menu/politica, aplicatii → aplicatii-erp

Faza D: sitemap.xml regenerat (24 URL-uri valide, lastmod 2026-04-28),
robots.txt + Sitemap: directive

Faza F: 404.html custom (navbar + 6 recovery links + buton primar),
ErrorDocument 404 în .htaccess, sidebar roa-suport-tehnic (drop TeamViewer/Ammyy),
HORECA hotel section anchor #hotel + hero placeholder + sub-heading

verify-cleanup.sh: 17/17 chec-uri PASS (hrefs, og:url, canonical, sitemap, navbar,
footer flex, 404, hub carduri, sidebar, HORECA anchor)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-28 21:21:33 +00:00

113 lines
6.5 KiB
Bash
Executable File

#!/bin/bash
set -e
cd $(git rev-parse --show-toplevel)
FAIL=0
DELETED="roa/2.html roa/3.html roa/4.html roa/5.html roa/aplicatii.html roa/avantaje.html roa/specificatii-erp.html roa/roa-auto.html roa/roa-analiza.html roa/roa-clienti.html roa/roa-contracte-furnizori.html roa/roa-obiecte-inventar.html roa/roa-politici-preturi.html roa/roa-resurse-umane.html roa/roa-noutati.html roa/roa-manager.html roa/roa-hotel.html menu/contact2.html menu/noutati.html menu/suport.html chatbot.html chatbot_maria.html chatbot_maria2.html demo.html sitemap.html politica-confidentialitate.html"
echo "=== 1. Niciun href intern către pagină ștearsă ==="
for f in $DELETED; do
bn=$(basename "$f")
dir=$(dirname "$f")
# For files in subdirectories (roa/, menu/), look for path-specific references
# to avoid false positives with same-named files in other folders (e.g. contafin/2.html)
if [ "$dir" != "." ]; then
refs=$(grep -rn "href=\"[^\"]*$dir/$bn\"" --include="*.html" . 2>/dev/null | \
grep -v -E "(^\./$f:|^\./.superdesign/|^./efactura-generator/|\.html\.bak:)" | \
cut -d: -f1 | sort -u || true)
else
refs=$(grep -rn "href=\"[^\"]*$bn\"" --include="*.html" . 2>/dev/null | \
grep -v "menu/$bn" | \
grep -v -E "(^\./$f:|^\./.superdesign/|^./efactura-generator/|\.html\.bak:)" | \
cut -d: -f1 | sort -u || true)
fi
if [ -n "$refs" ]; then
echo "$bn referenced from:"
echo "$refs" | sed 's|^| |'
FAIL=1
fi
done
[ $FAIL -eq 0 ] && echo " ✓ Zero internal href to deleted files"
echo "=== 2. og:url și canonical fără referințe la pagini șterse ==="
for f in $DELETED; do
bn=$(basename "$f")
ogs=$(grep -rln "og:url.*$bn\|rel=\"canonical\"[^>]*$bn" --include="*.html" . 2>/dev/null || true)
if [ -n "$ogs" ]; then echo " ❌ og:url/canonical references $bn:"; echo "$ogs" | sed 's|^| |'; FAIL=1; fi
done
[ $FAIL -eq 0 ] && echo " ✓ Zero og:url/canonical references"
echo "=== 3. Absolute URL https://www.romfast.ro/<deleted> ==="
for f in $DELETED; do
abs=$(grep -rln "https://www\.romfast\.ro/$f" --include="*.html" . 2>/dev/null || true)
if [ -n "$abs" ]; then echo " ❌ Absolute URL to $f:"; echo "$abs" | sed 's|^| |'; FAIL=1; fi
done
[ $FAIL -eq 0 ] && echo " ✓ Zero absolute URLs to deleted pages"
echo "=== 4. JS-built hrefs (string literal) ==="
for f in $DELETED; do
bn=$(basename "$f")
js=$(grep -rln "['\"][^'\"]*$bn['\"]" --include="*.js" . 2>/dev/null || true)
js_inline=$(grep -rln "<script[^>]*>[^<]*$bn" --include="*.html" . 2>/dev/null || true)
if [ -n "$js$js_inline" ]; then echo " ⚠ JS reference to $bn (review manually):"; echo "$js$js_inline" | sed 's|^| |'; fi
done
echo "=== 5. Sitemap.xml parseable ==="
python3 -c "import xml.etree.ElementTree as ET; ET.parse('sitemap.xml'); print(' ✓ valid XML')" 2>/dev/null || { echo " ❌ sitemap.xml invalid"; FAIL=1; }
echo "=== 6. Sitemap urls toate există local ==="
for url in $(grep -oE '<loc>[^<]+</loc>' sitemap.xml | sed -E 's|<loc>https://www\.romfast\.ro/?||;s|</loc>||'); do
[ -z "$url" ] && url="index.html"
if [ ! -f "$url" ]; then echo " ❌ Sitemap entry missing: $url"; FAIL=1; fi
done
[ $FAIL -eq 0 ] && echo " ✓ All sitemap URLs exist"
echo "=== 7. Navbar duplicate eliminat ==="
DUPS=$(grep -rln 'class="block text-gray-700.*Cum arată ROA' --include="*.html" . 2>/dev/null | wc -l | tr -d ' ')
if [ "$DUPS" -ne 0 ]; then echo "$DUPS files still have mobile-class duplicate"; FAIL=1; else echo " ✓ Navbar clean"; fi
echo "=== 8. roaclient-instalare în footer ==="
COUNT=$(grep -l "roaclient-instalare" --include="*.html" -r . | wc -l | tr -d ' ')
echo " Files with roaclient-instalare link: $COUNT (expected ~52)"
echo "=== 9. Fonts string consistent ==="
VARIANTS=$(grep -h "Inter:wght" --include="*.html" -r . 2>/dev/null | sort -u | wc -l | tr -d ' ')
if [ "$VARIANTS" -gt 1 ]; then echo "$VARIANTS distinct Inter wght strings (expected 1)"; fi
echo "=== 10. 404.html present ==="
[ -f "404.html" ] && echo " ✓ 404.html exists" || { echo " ❌ 404.html missing"; FAIL=1; }
echo "=== 11. ErrorDocument in .htaccess ==="
grep -q "ErrorDocument 404 /404.html" .htaccess && echo " ✓ ErrorDocument set" || { echo " ❌ ErrorDocument missing in .htaccess"; FAIL=1; }
echo "=== 12. Footer flex container present ==="
# Exclude: .superdesign (design files), efactura-generator (out-of-scope per plan)
TOTAL_HTML=$(find . -not -path './.superdesign/*' -not -path './.git/*' -not -path './efactura-generator/*' -name "*.html" | wc -l | tr -d ' ')
COUNT=$(find . -not -path './.superdesign/*' -not -path './.git/*' -not -path './efactura-generator/*' -name "*.html" | xargs grep -l 'flex flex-wrap justify-center gap-x-4 gap-y-2' 2>/dev/null | wc -l | tr -d ' ')
echo " Footer flex layout: $COUNT / $TOTAL_HTML fișiere HTML site (exclude .superdesign + efactura; așteptat: toate minus ~2 cu footer legacy)"
EXPECTED_MIN=$((TOTAL_HTML - 3))
if [ "$COUNT" -lt "$EXPECTED_MIN" ]; then echo " ❌ Prea puține fișiere cu noul footer layout (min așteptat: $EXPECTED_MIN)"; FAIL=1; else echo " ✓ Footer flex OK"; fi
echo "=== 13. Old copy 'Descarcă ROA Client' eliminated ==="
HITS=$(grep -rln "Descarcă ROA Client" --include="*.html" . 2>/dev/null | wc -l | tr -d ' ')
[ "$HITS" -eq 0 ] && echo " ✓ Old copy not present" || { echo "$HITS files still have 'Descarcă ROA Client'"; FAIL=1; }
echo "=== 14. New copy 'Ghid instalare ROA Client' present ==="
HITS=$(grep -rln "Ghid instalare ROA Client" --include="*.html" . 2>/dev/null | wc -l | tr -d ' ')
echo " 'Ghid instalare ROA Client' present in: $HITS / $TOTAL_HTML fișiere"
echo "=== 15. Hub aplicatii-erp.html has 6 module cards ==="
HUB_CARDS=$(grep -c 'professional-btn-secondary px-6 py-3 w-full' roa/aplicatii-erp.html 2>/dev/null || echo "0")
[ "$HUB_CARDS" -ge 6 ] && echo " ✓ Hub has $HUB_CARDS cards (≥6 expected)" || { echo " ⚠ Hub has only $HUB_CARDS cards (expected 6)"; }
echo "=== 16. roa-horeca.html has hotel section anchor ==="
grep -q 'id="hotel"' roa/roa-horeca.html && echo " ✓ hotel anchor present" || { echo " ⚠ hotel anchor missing"; }
echo "=== 17. roa-suport-tehnic.html sidebar curățat (no TeamViewer/Ammyy) ==="
TV=$(grep -cE "teamviewer\.com|ammyy\.com" menu/roa-suport-tehnic.html 2>/dev/null | tr -d ' \n' || echo 0)
TV=${TV:-0}
[ "$TV" -eq 0 ] && echo " ✓ Sidebar curățat" || { echo " ❌ TeamViewer/Ammyy still in sidebar"; FAIL=1; }
echo ""
[ $FAIL -eq 0 ] && echo "✅ verify-cleanup.sh PASSED" || { echo "❌ verify-cleanup.sh FAILED — fix issues above before commit"; exit 1; }