#!/usr/bin/env python3 # file: scripts/audit_rust_workspace_rules.py # version: 1 """Run all Rust normalization and KSP workspace audits.""" from __future__ import annotations import argparse import pathlib import subprocess def main() -> int: """Run general, export-completeness and KSP-specific audits.""" parser = argparse.ArgumentParser() parser.add_argument("--root", default=".") parser.add_argument("--report-only", action="store_true") arguments = parser.parse_args() script_dir = pathlib.Path(__file__).resolve().parent commands = [ ["python3", str(script_dir / "audit_rust_general_rules.py"), "--root", arguments.root], ["python3", str(script_dir / "audit_rust_export_completeness.py"), "--root", arguments.root], ["python3", str(script_dir / "audit_ksp_workspace_rules.py"), "--root", arguments.root], ] if arguments.report_only: for command in commands: command.append("--report-only") return max(subprocess.run(command, check=False).returncode for command in commands) if __name__ == "__main__": raise SystemExit(main())