#!/bin/bash set -euo pipefail is_worker_command() { local joined="$*" case "$joined" in *"celery -A iaai_scraper.worker.celery_app worker"*|*" celery -A iaai_scraper.worker.celery_app worker"*) return 0 ;; esac return 1 } is_scrape_cli_command() { local joined="$*" case "$joined" in *"collect-listing"*|*"scrape-vehicle"*|*"sync-vehicle"*|*"sync-listing"*) return 0 ;; esac return 1 } needs_browser_runtime() { is_worker_command "$@" || is_scrape_cli_command "$@" } start_proxy_bridge_if_needed() { if ! needs_browser_runtime "$@"; then return 0 fi if [ -z "${SOCKS5_PROXY_HOST:-}" ]; then return 0 fi echo "[entrypoint] Starting proxy bridge (HTTP :8899 → SOCKS5 ${SOCKS5_PROXY_HOST}:${SOCKS5_PROXY_PORT:-1002})..." if [ -z "${IAAI_PROXY_SERVER:-}" ]; then export IAAI_PROXY_SERVER="http://127.0.0.1:8899" elif [ "${IAAI_PROXY_SERVER}" = "http://localhost:8899" ]; then export IAAI_PROXY_SERVER="http://127.0.0.1:8899" fi echo "[entrypoint] Using browser proxy: ${IAAI_PROXY_SERVER}" python -m iaai_scraper.proxy_bridge & BRIDGE_PID=$! sleep 1 if ! kill -0 "${BRIDGE_PID}" 2>/dev/null; then echo "[entrypoint] ERROR: iaai_scraper.proxy_bridge failed to start" exit 1 fi echo "[entrypoint] Proxy bridge started (PID ${BRIDGE_PID})" } start_proxy_bridge_if_needed "$@" exec "$@"