54 lines
1.9 KiB
Bash
54 lines
1.9 KiB
Bash
#!/usr/bin/env bash
|
||
set -euo pipefail
|
||
|
||
# --- ENV defaults (can be overridden by compose/Portainer) ---
|
||
REPO_URL="${REPO_URL:-https://git.example.com/owner/shaiwatcher.git}"
|
||
REPO_BRANCH="${REPO_BRANCH:-main}"
|
||
SHAI_CONFIG="${SHAI_CONFIG:-/config/settings.conf}"
|
||
SHAI_DATA="${SHAI_DATA:-/data/data.json}" # we also honor SHAI_DATA_FILE in the bot
|
||
|
||
echo "[Wrapper] Repo: $REPO_URL @ $REPO_BRANCH"
|
||
echo "[Wrapper] SHAI_CONFIG: $SHAI_CONFIG"
|
||
echo "[Wrapper] SHAI_DATA: $SHAI_DATA"
|
||
|
||
# --- Ensure volumes/dirs exist ---
|
||
mkdir -p "$(dirname "$SHAI_CONFIG")" /data /app/runtime
|
||
touch "$SHAI_CONFIG"
|
||
|
||
# --- Fetch bot code fresh on every boot (or cache in /app/runtime) ---
|
||
if [ ! -d /app/runtime/repo/.git ]; then
|
||
echo "[Wrapper] Cloning repo..."
|
||
git clone --depth=1 -b "$REPO_BRANCH" "$REPO_URL" /app/runtime/repo
|
||
else
|
||
echo "[Wrapper] Updating repo..."
|
||
git -C /app/runtime/repo fetch origin "$REPO_BRANCH" --depth=1
|
||
git -C /app/runtime/repo reset --hard "origin/$REPO_BRANCH"
|
||
fi
|
||
|
||
cd /app/runtime/repo
|
||
|
||
# --- Python deps if needed ---
|
||
if [ -f requirements.txt ]; then
|
||
echo "[Wrapper] Installing requirements..."
|
||
pip install --no-cache-dir -r requirements.txt
|
||
fi
|
||
|
||
# Cache Playwright browsers in /cache so it persists across restarts
|
||
export PLAYWRIGHT_BROWSERS_PATH="${PLAYWRIGHT_BROWSERS_PATH:-/cache/pw-browsers}"
|
||
|
||
if python -c "import playwright" >/dev/null 2>&1; then
|
||
if [ ! -d "$PLAYWRIGHT_BROWSERS_PATH" ] || [ -z "$(ls -A "$PLAYWRIGHT_BROWSERS_PATH" 2>/dev/null)" ]; then
|
||
echo "[Wrapper] Installing Playwright Chromium to $PLAYWRIGHT_BROWSERS_PATH ..."
|
||
python -m playwright install chromium || python -m playwright install --with-deps chromium
|
||
else
|
||
echo "[Wrapper] Playwright browser cache present at $PLAYWRIGHT_BROWSERS_PATH"
|
||
fi
|
||
fi
|
||
|
||
# --- Export env for child (don’t quote, avoid stray quotes) ---
|
||
export SHAI_CONFIG SHAI_DATA
|
||
|
||
# --- Last sanity echo to help debugging ---
|
||
echo "[Wrapper] Launching bot..."
|
||
python -u bot.py
|