#!/bin/bash

#############################
# Joomla Sync Configuration #
#############################

# Lokaler Home-Server (Parrot)
LOCAL_JOOMLA_PATH="/var/www/html"
LOCAL_DB_USER="joomlauser"
LOCAL_DB_PASS="Test123"  # Aus configuration.php
LOCAL_DB_NAME="joomla5"

# Remote Alfahosting-Server
REMOTE_USER="h119517"
REMOTE_HOST="host179.alfahosting-server.de"
REMOTE_JOOMLA_PATH="~/html/aidoss"
REMOTE_DB_USER="h119517_joomlauser"
REMOTE_DB_PASS="0Wrssd&n8uW#"
REMOTE_DB_NAME="h119517_web643_13"

# Log-Datei
mkdir -p ~/logs
LOG_FILE="$HOME/logs/joomla-sync.log"

#############################
# Script Start              #
#############################

echo "========================================" >> ${LOG_FILE}
echo "Joomla Sync gestartet: $(date)" >> ${LOG_FILE}
echo "========================================" >> ${LOG_FILE}

# 1. Dateien synchronisieren
echo "Synchronisiere Bilder..." >> ${LOG_FILE}
rsync -avz --delete ${LOCAL_JOOMLA_PATH}/images/ ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_JOOMLA_PATH}/images/ >> ${LOG_FILE} 2>&1

echo "Synchronisiere Media..." >> ${LOG_FILE}
rsync -avz --delete ${LOCAL_JOOMLA_PATH}/media/ ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_JOOMLA_PATH}/media/ >> ${LOG_FILE} 2>&1

# Optional: Auch neue Extensions/Templates synchronisieren
# rsync -avz --delete ${LOCAL_JOOMLA_PATH}/components/ ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_JOOMLA_PATH}/components/ >> ${LOG_FILE} 2>&1
# rsync -avz --delete ${LOCAL_JOOMLA_PATH}/modules/ ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_JOOMLA_PATH}/modules/ >> ${LOG_FILE} 2>&1
# rsync -avz --delete ${LOCAL_JOOMLA_PATH}/plugins/ ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_JOOMLA_PATH}/plugins/ >> ${LOG_FILE} 2>&1
# rsync -avz --delete ${LOCAL_JOOMLA_PATH}/templates/ ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_JOOMLA_PATH}/templates/ >> ${LOG_FILE} 2>&1

# 2. Datenbank-Tabellen exportieren (nur Inhalts-Tabellen)
echo "Exportiere Artikel-Datenbank..." >> ${LOG_FILE}

mysqldump -u "${LOCAL_DB_USER}" -p"${LOCAL_DB_PASS}" "${LOCAL_DB_NAME}" \
  --tables \
  xh3gh_content \
  xh3gh_content_frontpage \
  xh3gh_content_rating \
  xh3gh_content_types \
  xh3gh_categories \
  xh3gh_tags \
  xh3gh_contentitem_tag_map \
  xh3gh_menu \
  xh3gh_menu_types \
  xh3gh_modules \
  xh3gh_modules_menu \
  > $HOME/tmp/joomla_content_sync.sql 2>> ${LOG_FILE}

if [ $? -eq 0 ]; then
    echo "Datenbank-Export erfolgreich" >> ${LOG_FILE}
else
    echo "FEHLER beim Datenbank-Export!" >> ${LOG_FILE}
    exit 1
fi

# 3. SQL-Dump zum Remote-Server kopieren
echo "Übertrage Datenbank zum Remote-Server..." >> ${LOG_FILE}

scp $HOME/tmp/joomla_content_sync.sql ${REMOTE_USER}@${REMOTE_HOST}:~/tmp/

# 4. Auf Remote-Server importieren
echo "Importiere Datenbank auf Remote-Server..." >> ${LOG_FILE}

ssh ${REMOTE_USER}@${REMOTE_HOST} "mysql -u \"${REMOTE_DB_USER}\" -p\"${REMOTE_DB_PASS}\" \"${REMOTE_DB_NAME}\" < ~/tmp/joomla_content_sync.sql && rm ~/tmp/joomla_content_sync.sql"

# 5. Lokale temporäre Datei löschen
rm $HOME/tmp/joomla_content_sync.sql

echo "Sync abgeschlossen: $(date)" >> ${LOG_FILE}
echo "" >> ${LOG_FILE}