From a01478d605df63132027c629f143c2da9e5aba5d Mon Sep 17 00:00:00 2001 From: frarol96 Date: Sun, 24 Aug 2025 16:53:49 +0000 Subject: [PATCH] Update wrapper/start.sh --- wrapper/start.sh | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/wrapper/start.sh b/wrapper/start.sh index 7e17986..beb3a8f 100644 --- a/wrapper/start.sh +++ b/wrapper/start.sh @@ -1,14 +1,13 @@ #!/usr/bin/env bash set -euo pipefail -# Stable paths export DATA_FILE="${DATA_FILE:-/data/data.json}" export PLAYWRIGHT_BROWSERS_PATH="${PLAYWRIGHT_BROWSERS_PATH:-/cache/pw-browsers}" export WITH_PLAYWRIGHT="${WITH_PLAYWRIGHT:-1}" mkdir -p "$(dirname "$DATA_FILE")" /cache "$PLAYWRIGHT_BROWSERS_PATH" -# Install browsers once if playwright is available in this image +# Install browser binaries once (idempotent) if [ "$WITH_PLAYWRIGHT" = "1" ]; then python - <<'PY' || true import importlib, os, subprocess, sys, pathlib @@ -16,20 +15,14 @@ ok = importlib.util.find_spec("playwright") is not None if ok: bpath = os.environ.get("PLAYWRIGHT_BROWSERS_PATH", "/cache/pw-browsers") p = pathlib.Path(bpath) - need = True - if p.exists(): - # crude presence check: any chromium* dir inside browsers path - for child in p.glob("*chromium*"): - need = False - break + need = not any(p.glob("*chromium*")) if need: try: - subprocess.check_call([sys.executable, "-m", "playwright", "install-deps", "chromium"]) + subprocess.run([sys.executable, "-m", "playwright", "install-deps", "chromium"], check=False) except Exception: - pass # not fatal on slim images + pass subprocess.check_call([sys.executable, "-m", "playwright", "install", "chromium"]) PY fi -# Hand off to the Python wrapper (nightly update + rollback) exec python -u /app/wrapper.py