Files
beeper-bridge-docker/migrate.sh

84 lines
2.7 KiB
Bash
Executable File

#!/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."