#!/usr/bin/env bash set -euo pipefail if [[ $# -ne 1 ]]; then echo "Usage: $0 " >&2 exit 1 fi MARKDOWN_FILE="$1" if [[ ! -f "$MARKDOWN_FILE" ]]; then echo "error: markdown file not found: $MARKDOWN_FILE" >&2 exit 1 fi # Buzz/relay media URLs often render in Buzz but fail in GitHub PR markdown # because GitHub's Camo proxy fetches them anonymously. PR screenshots should # be hosted through scripts/post-screenshots.sh or another GitHub-safe host. relay_media_pattern='https?://[^][()<>[:space:]"'"'"']*/media/[0-9a-fA-F]{64}\.(png|jpe?g|webp|gif)' sprout_media_pattern='https?://sprout-oss[^][()<>[:space:]"'"'"']*/media/' tmp_matches=$(mktemp) trap 'rm -f "$tmp_matches"' EXIT if grep -nE "$relay_media_pattern" "$MARKDOWN_FILE" >>"$tmp_matches"; then : fi if grep -nE "$sprout_media_pattern" "$MARKDOWN_FILE" >>"$tmp_matches"; then : fi if [[ -s "$tmp_matches" ]]; then matches=$(sort -u "$tmp_matches") echo "error: PR markdown contains Buzz/relay media URLs that may not render on GitHub:" >&2 printf '%s\n' "$matches" >&2 echo >&2 echo "Upload screenshots with scripts/post-screenshots.sh, then use its GitHub-safe image URLs in the PR body/comment." >&2 exit 1 fi