#!/usr/bin/env python3
"""Check all 'i' status sites and mark those with complete implementations as 'I'."""
import pathlib
import datetime

registry_path = pathlib.Path("/Volumes/Scratch/Sites/CMassP2/.smbatcher/REGISTRY.md")
sites_dir = pathlib.Path("/Volumes/Scratch/Sites/CMassP2/sites")

# Read registry
lines = registry_path.read_text().splitlines()
updated_lines = []
now = datetime.datetime.now().isoformat(timespec="seconds")
marked_count = 0

for line in lines:
    if line.startswith("|") and "Domain" not in line and "--------" not in line:
        cols = [c.strip() for c in line.strip("|").split("|")]
        if len(cols) >= 6 and cols[3] == "i":  # Status is 'i' (implementing)
            domain = cols[0]
            site_dir = sites_dir / f"{domain}-v1"

            # Check if site directory exists and has all required files
            required_files = {"index.html", "styles.css", "script.js"}
            if site_dir.exists():
                existing_files = {f.name for f in site_dir.iterdir() if f.is_file()}
                if required_files.issubset(existing_files):
                    # Mark as 'I' (implemented)
                    cols[3] = "I"
                    cols[5] = now
                    marked_count += 1
                    print(f"✓ {domain}: marked as I")
                else:
                    missing = required_files - existing_files
                    print(f"✗ {domain}: missing {missing}")
            else:
                print(f"✗ {domain}: no directory")

        # Reconstruct the line
        line = f"| {cols[0]} | {cols[1]} | {cols[2]} | {cols[3]} | {cols[4]} | {cols[5]} |"

    updated_lines.append(line)

# Write back
registry_path.write_text("\n".join(updated_lines) + "\n")
print(f"\nMarked {marked_count} sites as complete (I status)")
