#!/bin/bash set -e CONFIG_DIR="${CONFIG_DIR:-$HOME/.config/darktable-sync}" BIN_DIR="${BIN_DIR:-$HOME/.local/bin}" APPLICATIONS_DIR="${APPLICATIONS_DIR:-$HOME/.local/share/applications}" SYSTEMD_USER_DIR="${SYSTEMD_USER_DIR:-$HOME/.config/systemd/user}" if [[ -f "$CONFIG_DIR/.env" ]]; then # shellcheck source=/dev/null . "$CONFIG_DIR/.env" fi ### Systemd deaktivieren echo "Systemd-Services entfernen..." systemctl --user disable --now darktable-sync.timer 2>/dev/null || true systemctl --user disable --now darktable_sync.timer 2>/dev/null || true systemctl --user daemon-reload ### Lockfile entfernen LOCKFILE="/tmp/darktable_sync.sh.lock" if [ -f "$LOCKFILE" ]; then echo "Lockfile entfernen: $LOCKFILE" rm -f "$LOCKFILE" fi ### Aktiven Marker auf Server entfernen (best-effort) if [[ -n "${SERVER_IP:-}" ]] && [[ -n "${SERVER_DB_DIR:-}" ]]; then if ssh -o ConnectTimeout=5 -o BatchMode=yes \ -p "${SERVER_SSH_PORT:-22}" "${SERVER_USER:-$USER}@$SERVER_IP" true 2>/dev/null; then echo "Active-Marker auf Server entfernen..." ssh -o ConnectTimeout=5 -o BatchMode=yes \ -p "${SERVER_SSH_PORT:-22}" "${SERVER_USER:-$USER}@$SERVER_IP" \ "rm -f '$SERVER_DB_DIR/darktable.active'" 2>/dev/null || true fi fi ### Installierte Dateien entfernen echo "Installierte Dateien entfernen..." rm -fv \ "$BIN_DIR/darktable_common.sh" \ "$BIN_DIR/darktable_sync.sh" \ "$BIN_DIR/darktable_wrapper.sh" \ "$APPLICATIONS_DIR/darktable-with-sync.desktop" \ "$APPLICATIONS_DIR/darktable-sync-only.desktop" \ "$SYSTEMD_USER_DIR/darktable-sync.service" \ "$SYSTEMD_USER_DIR/darktable-sync.timer" \ "$SYSTEMD_USER_DIR/darktable_sync.service" \ "$SYSTEMD_USER_DIR/darktable_sync.timer" ### Config-Verzeichnis aufraumen if [ -d "$CONFIG_DIR" ]; then read -r -p "Konfigurationsverzeichnis $CONFIG_DIR loeschen? [j/N] " ans if [[ "$ans" =~ ^[jJyY] ]]; then rm -rfv "$CONFIG_DIR" echo "Konfigurationsverzeichnis entfernt." else echo "Konfigurationsverzeichnis bleibt erhalten: $CONFIG_DIR" fi fi echo "" echo "Deinstallation abgeschlossen." echo "Die Darktable-Datenbank (~/.config/darktable/) bleibt unveraendert."