Download scripts/run_tui_with_exec_server.sh from SaylorTwift/codex: direct link, hf CLI and curl.
- Browser
- Download file 1.77 kB
-
https://huggingface.co/SaylorTwift/codex/resolve/main/scripts/run_tui_with_exec_server.sh
- Command line
-
hf download hf://SaylorTwift/codex/scripts/run_tui_with_exec_server.sh
-
curl -L -o run_tui_with_exec_server.sh https://huggingface.co/SaylorTwift/codex/resolve/main/scripts/run_tui_with_exec_server.sh
1.77 kB
| set -euo pipefail | |
| repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" | |
| cargo_root="$repo_root/codex-rs" | |
| listen_url="${CODEX_EXEC_SERVER_LISTEN_URL:-ws://127.0.0.1:0}" | |
| start_timeout_seconds="${CODEX_EXEC_SERVER_START_TIMEOUT_SECONDS:-120}" | |
| tmp_dir="$(mktemp -d "${TMPDIR:-/tmp}/codex-tui-with-exec-server.XXXXXX")" | |
| stdout_log="$tmp_dir/exec-server.stdout" | |
| stderr_log="$tmp_dir/exec-server.stderr" | |
| server_pid="" | |
| exec_server_url="" | |
| cleanup() { | |
| if [[ -n "$server_pid" ]]; then | |
| kill "$server_pid" >/dev/null 2>&1 || true | |
| wait "$server_pid" >/dev/null 2>&1 || true | |
| fi | |
| rm -rf "$tmp_dir" | |
| } | |
| trap cleanup EXIT INT TERM HUP | |
| ( | |
| cd "$cargo_root" | |
| cargo run -p codex-cli --bin codex -- exec-server --listen "$listen_url" | |
| ) >"$stdout_log" 2>"$stderr_log" & | |
| server_pid="$!" | |
| # Wait for the server to print its bound websocket URL before launching the TUI. | |
| for _ in $(seq 1 "$((start_timeout_seconds * 20))"); do | |
| if [[ -s "$stdout_log" ]]; then | |
| exec_server_url="$(head -n 1 "$stdout_log" | tr -d '\r')" | |
| if [[ "$exec_server_url" == ws://* ]]; then | |
| break | |
| fi | |
| fi | |
| if ! kill -0 "$server_pid" >/dev/null 2>&1; then | |
| cat "$stderr_log" >&2 || true | |
| cat "$stdout_log" >&2 || true | |
| echo "failed to start codex exec-server" >&2 | |
| exit 1 | |
| fi | |
| sleep 0.05 | |
| done | |
| if [[ -z "$exec_server_url" ]]; then | |
| cat "$stderr_log" >&2 || true | |
| cat "$stdout_log" >&2 || true | |
| echo "timed out waiting ${start_timeout_seconds}s for codex exec-server to report its websocket URL" >&2 | |
| exit 1 | |
| fi | |
| export CODEX_EXEC_SERVER_URL="$exec_server_url" | |
| echo "Starting codex-tui with CODEX_EXEC_SERVER_URL=$CODEX_EXEC_SERVER_URL" >&2 | |
| cd "$cargo_root" | |
| cargo run -p codex-tui --bin codex-tui -- -c mcp_oauth_credentials_store=file "$@" | |