Verify required tools are available.
()
| 129 | |
| 130 | |
| 131 | def check_tools(): |
| 132 | """Verify required tools are available.""" |
| 133 | tools = { |
| 134 | "wasm-tools": ["wasm-tools", "--version"], |
| 135 | "twiggy": ["twiggy", "--version"], |
| 136 | "rustfilt": ["rustfilt", "--version"], |
| 137 | "inferno-flamegraph": ["inferno-flamegraph", "--help"], |
| 138 | } |
| 139 | missing = [] |
| 140 | for name, cmd in tools.items(): |
| 141 | try: |
| 142 | subprocess.run(cmd, capture_output=True, check=True) |
| 143 | except FileNotFoundError: |
| 144 | missing.append(name) |
| 145 | if missing: |
| 146 | print(f"{RED}Error: missing tools: {', '.join(missing)}{RESET}", file=sys.stderr) |
| 147 | print(f"Install with: {BOLD}cargo install {' '.join(missing)}{RESET}", file=sys.stderr) |
| 148 | sys.exit(1) |
| 149 | |
| 150 | |
| 151 | # --------------------------------------------------------------------------- |