# src/utils/system_utils.py — System-level utilities from __future__ import annotations import os import platform import subprocess from typing import List, Optional def detect_simulator() -> Optional[str]: """Detect available UVM simulator on PATH.""" sims = ["vcs", "xrun", "xsim", "vsim", "vlogan"] for sim in sims: if _which(sim): return sim return None def _which(name: str) -> Optional[str]: try: result = subprocess.run( ["where", name] if platform.system() == "Windows" else ["which", name], capture_output=True, text=True, timeout=5, ) return result.stdout.strip() if result.returncode == 0 else None except Exception: return None