36 lines
1.1 KiB
Bash
36 lines
1.1 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# --- config ---
|
|
REPO_URL="${REPO_URL:-<PUT_YOUR_GIT_URL_HERE>}"
|
|
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
|