#!/usr/bin/env python3 """Run read-only metadata diagnostics through the backend's shared DatabaseService.""" import importlib.util import json import os from pathlib import Path import sys ROOT = Path(__file__).resolve().parents[1] spec = importlib.util.spec_from_file_location("legacy_config", ROOT / "scripts/run-backend.py") config = importlib.util.module_from_spec(spec) spec.loader.exec_module(config) def failure(message): print(json.dumps({"connected": False, "reason": "CONFIGURATION_ERROR", "errorCode": None, "message": message, "applicationRowsRead": 0, "writes": 0}, ensure_ascii=False, indent=2)) return 2 def main(): try: jar = config.backend_jar(ROOT) except FileNotFoundError: return failure("Kein eindeutiges Backend-JAR. Zuerst ./build.sh ausführen.") try: env = config.database_environment(ROOT, dict(os.environ)) os.chdir(ROOT / "backend") # Credentials are passed only in the environment, never as process arguments. os.execvpe("java", ["java", "-jar", str(jar), "--database-check"], env) except (OSError, ValueError): return failure("Backend-Start oder DB_URL, DB_USER und DB_PASSWORD in .env/Umgebung prüfen.") return 0 if __name__ == "__main__": sys.exit(main())