#!/usr/bin/env bash

set -euo pipefail

snippets_dir_path="$(mktemp -d)"
trap 'rm -rf "${snippets_dir_path}"' EXIT

python - "${snippets_dir_path}" <<'PY'
from pathlib import Path
import re
import sys

readme = Path("README.md").read_text(encoding="utf-8")
snippets = re.findall(r"```python\n(.*?)```", readme, flags=re.DOTALL)
if not snippets:
    raise SystemExit("README.md does not contain Python snippets")

snippets_dir = Path(sys.argv[1])
for snippet_number, snippet in enumerate(snippets, start=1):
    (snippets_dir / f"snippet{snippet_number}.py").write_text(
        snippet,
        encoding="utf-8",
    )
PY

mypy "${snippets_dir_path}"
ruff check "${snippets_dir_path}" --ignore F403,F405
