#!/bin/bash # Farben GREEN='\033[0;32m' BLUE='\033[0;34m' YELLOW='\033[1;33m' NC='\033[0m' # No Color echo -e "${BLUE}=== Beeper Bridge Migration Tool ===${NC}" echo "Dieses Skript kopiert deine alten Daten in die neue Docker-Struktur" echo "und passt die Pfade in der config.yaml automatisch an." echo "" # Funktion zur Migration einer Bridge migrate_bridge() { SERVICE_NAME=$1 DEST_DIR="./data/$SERVICE_NAME" echo -e "${YELLOW}--- Migration für $SERVICE_NAME ---${NC}" read -p "Gib den PFAD zum ALTEN Ordner von $SERVICE_NAME ein (Enter zum Überspringen): " SOURCE_DIR # Pfad bereinigen (Tilde expandieren, Slash am Ende entfernen) SOURCE_DIR="${SOURCE_DIR/#\~/$HOME}" SOURCE_DIR="${SOURCE_DIR%/}" if [ -z "$SOURCE_DIR" ]; then echo "Übersprungen." return fi if [ ! -d "$SOURCE_DIR" ]; then echo "Fehler: Ordner $SOURCE_DIR existiert nicht!" return fi echo "Kopiere Daten nach $DEST_DIR..." # 1. Configs kopieren cp -v "$SOURCE_DIR/config.yaml" "$DEST_DIR/" 2>/dev/null cp -v "$SOURCE_DIR/registration.yaml" "$DEST_DIR/" 2>/dev/null # 2. Datenbank finden und kopieren # Wir suchen nach .db Dateien. Oft heißen sie mautrix-telegram.db oder ähnlich. DB_FILE=$(find "$SOURCE_DIR" -maxdepth 1 -name "*.db" | head -n 1) if [ -n "$DB_FILE" ]; then DB_FILENAME=$(basename "$DB_FILE") echo "Datenbank gefunden: $DB_FILENAME" cp -v "$DB_FILE" "$DEST_DIR/bridge.db" # 3. Config anpassen (SQLite Pfad) echo "Passe SQLite-Pfad in config.yaml an..." # Backup erstellen cp "$DEST_DIR/config.yaml" "$DEST_DIR/config.yaml.bak" # Ersetze die URI Zeile. Wir suchen nach "uri: sqlite:..." und ersetzen es hard durch den Docker Pfad sed -i 's|uri: sqlite:.*|uri: sqlite:////data/bridge.db|g' "$DEST_DIR/config.yaml" echo "Config aktualisiert." else echo -e "${YELLOW}Warnung: Keine .db Datei in $SOURCE_DIR gefunden!${NC}" fi # 4. Spezielle Ordner kopieren (z.B. Signal data Ordner falls vorhanden) if [ "$SERVICE_NAME" == "signal" ] && [ -d "$SOURCE_DIR/data" ]; then echo "Kopiere Signal 'data' Unterordner..." cp -r "$SOURCE_DIR/data" "$DEST_DIR/" fi # 5. Berechtigungen setzen (für Docker User 1000 oft notwendig) chmod -R 777 "$DEST_DIR" echo -e "${GREEN}Migration für $SERVICE_NAME abgeschlossen.${NC}" echo "" } # Migration starten migrate_bridge "whatsapp" migrate_bridge "telegram" migrate_bridge "signal" migrate_bridge "googlechat" echo -e "${BLUE}=== Fertig ===${NC}" echo "Du kannst jetzt 'docker compose up -d' starten."