#!/usr/bin/env bash set -euo pipefail # --- config --- REPO_URL="${REPO_URL:-}" APP_DIR="/opt/energy-price-scrapers" # --- clone or update repo --- if [ ! -d "$APP_DIR/.git" ]; then git clone "$REPO_URL" "$APP_DIR" else git -C "$APP_DIR" fetch --all --prune git -C "$APP_DIR" checkout main git -C "$APP_DIR" pull --ff-only fi # --- venv build/refresh --- python3 -m venv "$APP_DIR/.venv" "$APP_DIR/.venv/bin/pip" install --upgrade pip setuptools wheel if [ -f "$APP_DIR/requirements.txt" ]; then "$APP_DIR/.venv/bin/pip" install -r "$APP_DIR/requirements.txt" else echo "requirements.txt missing; aborting." exit 1 fi chown -R energy:energy "$APP_DIR" echo "Install complete." sudo install -m 0755 $APP_DIR/os/energy-price-scrapers-update.sh /usr/local/bin/energy-price-scrapers-update sudo install -m 0755 $APP_DIR/os/energy-price-scrapers.service /etc/systemd/system/energy-price-scrapers.service sudo systemctl daemon-reload sudo systemctl enable --now energy-price-scrapers.service sudo systemctl status energy-price-scrapers.service