Files
nas_connection/scripts/start.sh
2026-06-08 22:19:08 +09:00

55 lines
1.8 KiB
Bash

#!/bin/sh
set -eu
CODEX_BIN="${CODEX_BIN:-codex}"
BOT_WORKSPACE_ROOT="${BOT_WORKSPACE_ROOT:-/workspaces}"
CODEX_APP_SERVER_URL="${CODEX_APP_SERVER_URL:-ws://127.0.0.1:4500}"
CODEX_APP_SERVER_LISTEN="${CODEX_APP_SERVER_LISTEN:-$CODEX_APP_SERVER_URL}"
CODEX_APP_SERVER_ENABLED="${CODEX_APP_SERVER_ENABLED:-true}"
CODEX_APP_SERVER_CWD="${CODEX_APP_SERVER_CWD:-$BOT_WORKSPACE_ROOT}"
CODEX_APP_SERVER_SANDBOX="${CODEX_APP_SERVER_SANDBOX:-${CODEX_READONLY_SANDBOX:-read-only}}"
CODEX_APP_SERVER_APPROVAL_POLICY="${CODEX_APP_SERVER_APPROVAL_POLICY:-never}"
APP_SERVER_PID=""
cleanup() {
if [ -n "$APP_SERVER_PID" ] && kill -0 "$APP_SERVER_PID" 2>/dev/null; then
kill "$APP_SERVER_PID" 2>/dev/null || true
wait "$APP_SERVER_PID" 2>/dev/null || true
fi
}
trap cleanup INT TERM EXIT
mkdir -p /app/data "$BOT_WORKSPACE_ROOT" "${CODEX_HOME:-/root/.codex}"
python -m app.ensure_codex_config
if [ "$CODEX_APP_SERVER_ENABLED" = "true" ]; then
echo "Starting Codex app-server at $CODEX_APP_SERVER_LISTEN"
"$CODEX_BIN" \
--cd "$CODEX_APP_SERVER_CWD" \
--sandbox "$CODEX_APP_SERVER_SANDBOX" \
--ask-for-approval "$CODEX_APP_SERVER_APPROVAL_POLICY" \
app-server \
--listen "$CODEX_APP_SERVER_LISTEN" \
&
APP_SERVER_PID="$!"
if echo "$CODEX_APP_SERVER_LISTEN" | grep -q '^ws://'; then
HEALTH_URL="$(echo "$CODEX_APP_SERVER_LISTEN" | sed 's#^ws://#http://#')/readyz"
for _ in $(seq 1 30); do
if curl -fsS "$HEALTH_URL" >/dev/null 2>&1; then
echo "Codex app-server is ready"
break
fi
if ! kill -0 "$APP_SERVER_PID" 2>/dev/null; then
echo "Codex app-server exited before becoming ready"
break
fi
sleep 1
done
fi
fi
python -m app.main