aboutsummaryrefslogtreecommitdiffstats
path: root/ida-tui
blob: 9ceb949f10067e480b26eb1bf9e8031fd35fcfd6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/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 "$@"