33 lines
1.2 KiB
Bash
Executable File
33 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Install systemd service so LED controller starts at boot.
|
|
# Run once: sudo scripts/install-boot-service.sh
|
|
set -e
|
|
cd "$(dirname "$0")/.."
|
|
REPO="$(pwd)"
|
|
SERVICE_NAME="led-controller.service"
|
|
UNIT_PATH="/etc/systemd/system/$SERVICE_NAME"
|
|
if [ ! -f "scripts/led-controller.service" ]; then
|
|
echo "Run this script from the repo root."
|
|
exit 1
|
|
fi
|
|
export PIPENV_VENV_IN_PROJECT="${PIPENV_VENV_IN_PROJECT:-1}"
|
|
if command -v pipenv >/dev/null 2>&1; then
|
|
PY="$(command -v python3)"
|
|
if [ -z "$PY" ]; then
|
|
echo "python3 not found; install python3." >&2
|
|
exit 1
|
|
fi
|
|
echo "Ensuring Pipenv deps with $PY (venv in project: .venv when PIPENV_VENV_IN_PROJECT=1)…"
|
|
# --skip-lock: install from Pipfile only (avoids lock/Python hash mismatches on device).
|
|
pipenv install --quiet --skip-lock --python "$PY"
|
|
pipenv --venv > scripts/.led-controller-venv
|
|
fi
|
|
chmod +x scripts/start.sh
|
|
sudo cp "scripts/led-controller.service" "$UNIT_PATH"
|
|
sudo systemctl daemon-reload
|
|
sudo systemctl enable "$SERVICE_NAME"
|
|
echo "Installed and enabled $SERVICE_NAME"
|
|
echo "Start now: sudo systemctl start $SERVICE_NAME"
|
|
echo "Status: sudo systemctl status $SERVICE_NAME"
|
|
echo "Logs: journalctl -u $SERVICE_NAME -f"
|