/tmp/fix-v2-handoff-permissions.sh
#!/usr/bin/env bash
set -euo pipefail
SLUG="vqngx6j8dc9q1lvt7g2a7a646q2t"
HOST="vqngx6j8dc9q1lvt7g2a7a646q2t.jfmcommunications.com.au"
PUBLIC_BASE="/var/www/handoff/public/$SLUG"
RUN="complete-handoff-v2-20260609-124454"
OUT="$PUBLIC_BASE/$RUN"
LATEST="$PUBLIC_BASE/latest-complete-handoff"
echo "=== FIX V2 HANDOFF PERMISSIONS ==="
date
if [ ! -d "$OUT" ]; then
echo "ERROR: missing $OUT"
exit 1
fi
echo
echo "=== BEFORE ==="
stat -c '%A %U:%G %n' "$PUBLIC_BASE" "$OUT" "$OUT/index.html" "$LATEST" 2>/dev/null || true
echo
echo "=== APPLY WEB-READABLE PERMISSIONS ==="
chmod 755 /var/www /var/www/handoff /var/www/handoff/public "$PUBLIC_BASE"
find "$OUT" -type d -exec chmod 755 {} \;
find "$OUT" -type f -exec chmod 644 {} \;
if [ -d "$LATEST" ]; then
find "$LATEST" -type d -exec chmod 755 {} \;
find "$LATEST" -type f -exec chmod 644 {} \;
fi
chmod 644 "$PUBLIC_BASE/index.html" 2>/dev/null || true
echo
echo "=== AFTER ==="
stat -c '%A %U:%G %n' "$PUBLIC_BASE" "$OUT" "$OUT/index.html" "$LATEST" "$LATEST/index.html" 2>/dev/null || true
echo
echo "=== LOCAL NGINX CHECK ==="
for url in \
"/$SLUG/" \
"/$SLUG/$RUN/index.html" \
"/$SLUG/$RUN/all-links.html" \
"/$SLUG/$RUN/new-chat-start.html" \
"/$SLUG/latest-complete-handoff/index.html"
do
code="$(curl -sk -o /tmp/handoff-check.html -w '%{http_code}' -H "Host: $HOST" "https://127.0.0.1$url" || true)"
bytes="$(wc -c < /tmp/handoff-check.html 2>/dev/null || echo 0)"
echo "$code $bytes $url"
done
echo
echo "=== PORTAL MARKER CHECK ==="
grep -n "COMPLETE-HANDOFF-V2" "$PUBLIC_BASE/index.html" || true
echo
echo "Open:"
echo "https://$HOST/$SLUG/$RUN/index.html"
echo "https://$HOST/$SLUG/latest-complete-handoff/index.html"
echo
echo "=== DONE ==="