Files

79 lines
1.9 KiB
Bash
Raw Permalink Normal View History

2026-07-29 17:36:22 +02:00
#!/usr/bin/env bash
set -euo pipefail
2026-08-11 23:33:40 +02:00
SERVICE_NAME="BackItUp.service"
2026-07-29 17:36:22 +02:00
PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
USER_SYSTEMD_DIR="${HOME}/.config/systemd/user"
TARGET_SERVICE_FILE="${USER_SYSTEMD_DIR}/${SERVICE_NAME}"
SOURCE_SERVICE_FILE="${PROJECT_DIR}/deploy/systemd/${SERVICE_NAME}"
usage() {
cat <<EOF
Usage: ./scripts/service.sh <command>
Commands:
install Install service for current user and reload daemon
start Start service
stop Stop service
restart Restart service
status Show service status
logs Follow service logs
enable Enable autostart on login
disable Disable autostart on login
EOF
}
ensure_venv() {
if [[ ! -x "${PROJECT_DIR}/.venv/bin/python" ]]; then
echo "[INFO] Erzeuge .venv..."
python3 -m venv "${PROJECT_DIR}/.venv"
fi
echo "[INFO] Installiere/aktualisiere Abhaengigkeiten..."
"${PROJECT_DIR}/.venv/bin/python" -m pip install -r "${PROJECT_DIR}/requirements.txt"
}
install_service() {
mkdir -p "${USER_SYSTEMD_DIR}"
cp "${SOURCE_SERVICE_FILE}" "${TARGET_SERVICE_FILE}"
systemctl --user daemon-reload
echo "[OK] Service installiert: ${TARGET_SERVICE_FILE}"
}
case "${1:-}" in
install)
ensure_venv
install_service
;;
start)
systemctl --user start "${SERVICE_NAME}"
echo "[OK] Service gestartet"
;;
stop)
systemctl --user stop "${SERVICE_NAME}"
echo "[OK] Service gestoppt"
;;
restart)
systemctl --user restart "${SERVICE_NAME}"
echo "[OK] Service neugestartet"
;;
status)
systemctl --user status "${SERVICE_NAME}" --no-pager
;;
logs)
journalctl --user -u "${SERVICE_NAME}" -f
;;
enable)
systemctl --user enable "${SERVICE_NAME}"
echo "[OK] Autostart aktiviert"
;;
disable)
systemctl --user disable "${SERVICE_NAME}"
echo "[OK] Autostart deaktiviert"
;;
*)
usage
exit 1
;;
esac