playbook/antigravity-awesome-skills/tools/scripts/_project_paths.py

16 lines
470 B
Python

from __future__ import annotations
from pathlib import Path
def find_repo_root(start_path: str | Path) -> Path:
current = Path(start_path).resolve()
if current.is_file():
current = current.parent
for candidate in (current, *current.parents):
if (candidate / "package.json").is_file() and (candidate / "README.md").is_file():
return candidate
raise FileNotFoundError(f"Could not find repository root from {start_path!r}")