INNER CODE UNIT · Python
discover_projects
libriscv/godot-sandbox · scripts/demo_compat.py:161
def discover_projects(
root: Path, patterns: Sequence[str], excludes: Sequence[str] = ()
) -> list[Path]:
if not root.is_dir():
raise HarnessError(f"demo root does not exist: {root}")
projects = sorted(path.parent for path in root.rglob("project.godot"))
if patterns:
projects = [
project
for project in projects
if any(matches(project.relative_to(root).as_posix(), pattern) for pattern in patterns)
]
if excludes:
projects = [
project
for project in projects
if not any(matches(project.relative_to(root).as_posix(), pattern) for pattern in excludes)
]