61 lines
1.4 KiB
Bash
61 lines
1.4 KiB
Bash
#!/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 "$@"
|