v0.0.1 first commit
This commit is contained in:
Executable
+78
@@ -0,0 +1,78 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
SERVICE_NAME="nextcloud-backup.service"
|
||||
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
|
||||
Reference in New Issue
Block a user