#!/usr/bin/env bash set -Eeuo pipefail log() { echo "[SETUP] $*"; } err() { echo "[SETUP][ERR] $*" >&2; } log "Starting Setup.sh" log "uname: $(uname -a)" log "whoami: $(whoami)" log "pwd: $(pwd)" # Python / pip / playwright versions python -V || true pip -V || true python -m playwright --version || true # Decide browser cache path (align with runtime default) PW_PATH="${PLAYWRIGHT_BROWSERS_PATH:-/home/user/.cache/ms-playwright}" log "PLAYWRIGHT_BROWSERS_PATH resolved to: ${PW_PATH}" mkdir -p "${PW_PATH}" || true # List current content before install if [ -d "${PW_PATH}" ]; then log "Before install, ${PW_PATH} entries (top level):" ls -la "${PW_PATH}" || true else log "Before install, ${PW_PATH} does not exist" fi # Try to install Chromium via Playwright (non-root) without host deps export PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS=1 log "Running: PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS=1 python -m playwright install chromium" if python -m playwright install chromium; then log "Playwright Chromium install finished with exit code 0" else err "Playwright Chromium install returned non-zero exit; continuing to print diagnostics" fi # After install, list directories/files to verify binaries if [ -d "${PW_PATH}" ]; then log "After install, ${PW_PATH} entries (top level):" ls -la "${PW_PATH}" || true log "Searching for browser executables under ${PW_PATH} (depth<=3) ..." find "${PW_PATH}" -maxdepth 3 -type f \( -name chrome -o -name chromium -o -name headless_shell -o -name chrome-wrapper \) -printf "[SETUP] BIN %p\n" || true else err "After install, ${PW_PATH} still does not exist" fi log "Environment summary:" log "PATH=$PATH" log "HOME=$HOME" log "NODE_ENV=${NODE_ENV:-}" log "Setup.sh completed"