#!/bin/sh # Caveman launcher for the IDA TUI: # # ./ida-tui foo.elf # open a binary and drive it — that's it # # Opening a binary spins up our own idalib worker (a unix-socket subprocess; # no HTTP, no supervisor). Uses the venv python that has textual (override with # $IDATUI_PYTHON); the worker auto-picks the python that has ida_pro_mcp # (override with $IDATUI_WORKER_PYTHON). set -eu SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd) PY="${IDATUI_PYTHON:-$HOME/ida-venv/bin/python}" if [ ! -x "$PY" ]; then PY=$(command -v python3 || true) [ -n "$PY" ] || { echo "ida-tui: no python found (set \$IDATUI_PYTHON)" >&2; exit 1; } fi # Make `idatui` importable no matter where you invoke this from; binary path # arguments are resolved against your real cwd by the launcher, not $SCRIPT_DIR. exec env PYTHONPATH="$SCRIPT_DIR${PYTHONPATH:+:$PYTHONPATH}" "$PY" -m idatui.launch "$@"