59 lines
2.0 KiB
Python
59 lines
2.0 KiB
Python
#!/usr/bin/env python3
|
|
# file: scripts/audit_distribution_layout.py
|
|
# version: 1
|
|
|
|
"""Audit the static distribution layout expected by the 0.1.0 beta."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import argparse
|
|
import pathlib
|
|
import sys
|
|
|
|
|
|
REQUIRED_PATHS = (
|
|
"crates/apps/game-reflex-poc-desktop/Cargo.toml",
|
|
"crates/apps/game-snake-poc-desktop/Cargo.toml",
|
|
"crates/apps/game-reflex-poc-tauri/Cargo.toml",
|
|
"crates/apps/game-reflex-poc-tauri/package.json",
|
|
"crates/apps/game-reflex-poc-tauri/tsconfig.json",
|
|
"crates/apps/game-reflex-poc-tauri/vite.config.ts",
|
|
"crates/apps/game-reflex-poc-tauri/tauri.conf.json",
|
|
"crates/apps/game-reflex-poc-tauri/capabilities/default.json",
|
|
"crates/apps/game-reflex-poc-tauri/icons/icon.png",
|
|
"crates/apps/game-reflex-poc-tauri/frontend/index.html",
|
|
"crates/apps/game-reflex-poc-tauri/frontend/ts/main.ts",
|
|
"crates/apps/game-reflex-poc-wasm/Cargo.toml",
|
|
"Android/game-reflex-poc/build.gradle",
|
|
"Android/game-snake-poc/build.gradle",
|
|
"scripts/build_android_rust.py",
|
|
"scripts/build_reflex_tauri_wasm.py",
|
|
"assets/common",
|
|
"assets/game-reflex-poc",
|
|
"assets/game-snake-poc",
|
|
)
|
|
|
|
|
|
def main() -> int:
|
|
"""Validate that every static distribution boundary exists."""
|
|
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument("--root", default=".", help="workspace root")
|
|
arguments = parser.parse_args()
|
|
root = pathlib.Path(arguments.root).resolve()
|
|
missing: list[str] = []
|
|
for relative in REQUIRED_PATHS:
|
|
if not (root / relative).exists():
|
|
missing.append(relative)
|
|
if missing:
|
|
for relative in missing:
|
|
print(f"DIST-LAYOUT-001: missing required path: {relative}", file=sys.stderr)
|
|
print(f"Distribution layout audit: {len(missing)} violation(s)", file=sys.stderr)
|
|
return 1
|
|
print(f"Distribution layout audit: clean ({len(REQUIRED_PATHS)} required path(s))")
|
|
return 0
|
|
|
|
|
|
if __name__ == "__main__":
|
|
raise SystemExit(main())
|