diff --git a/quick_update.sh b/quick_update.sh index 22b00fe..b0e2b6a 100644 --- a/quick_update.sh +++ b/quick_update.sh @@ -2,6 +2,19 @@ set -euo pipefail +# ========================================== + +# Dolibarr Quick Update Script + +# ========================================== + +# Automatisch sudo anfordern + +if [ "$EUID" -ne 0 ]; then +echo "Root-Rechte erforderlich – starte mit sudo..." +exec sudo bash "$0" "$@" +fi + VERSION="23.0.3" BACKUPDIR="/root/dolibarr-backup-$(date +%F-%H%M)" @@ -9,66 +22,88 @@ INSTALLDIR="/usr/share/dolibarr" OLDDIR="/usr/share/dolibarr-old" TMPDIR="/tmp/dolibarr-update" -echo "=== Dolibarr Quick Update startet ===" +clear + +echo "=========================================" +echo " Dolibarr Quick Update" +echo "=========================================" +echo "" mkdir -p "$BACKUPDIR" rm -rf "$TMPDIR" mkdir -p "$TMPDIR" -echo "=== Backup Dateien ===" +echo "[1/10] Backup Dateien..." tar -czf "$BACKUPDIR/dolibarr-files.tar.gz" "$INSTALLDIR" -echo "=== DB Daten auslesen ===" +echo "[2/10] Datenbankdaten lesen..." + DB_NAME=$(grep dolibarr_main_db_name /etc/dolibarr/conf.php | cut -d"'" -f2) DB_USER=$(grep dolibarr_main_db_user /etc/dolibarr/conf.php | cut -d"'" -f2) DB_PASS=$(grep dolibarr_main_db_pass /etc/dolibarr/conf.php | cut -d"'" -f2) -echo "=== SQL Backup ===" -mysqldump -u "$DB_USER" -p"$DB_PASS" "$DB_NAME" > "$BACKUPDIR/dolibarr.sql" +echo "[3/10] SQL Backup..." +mysqldump -u "$DB_USER" -p"$DB_PASS" "$DB_NAME" \ -echo "=== install.lock entfernen ===" +> "$BACKUPDIR/dolibarr.sql" + +echo "[4/10] install.lock entfernen..." rm -f /var/lib/dolibarr/documents/install.lock -echo "=== Download Dolibarr $VERSION ===" -cd "$TMPDIR" -wget "https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/$VERSION/dolibarr-$VERSION.tgz/download" -O dolibarr.tgz +echo "[5/10] Download Dolibarr $VERSION..." -echo "=== Entpacken ===" +cd "$TMPDIR" + +wget +"https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/$VERSION/dolibarr-$VERSION.tgz/download" +-O dolibarr.tgz + +echo "[6/10] Entpacken..." tar -xzf dolibarr.tgz -echo "=== Alte Installation sichern ===" +echo "[7/10] Alte Installation sichern..." + rm -rf "$OLDDIR" mv "$INSTALLDIR" "$OLDDIR" -echo "=== Neue Version installieren ===" +echo "[8/10] Neue Version installieren..." + mv "$TMPDIR/dolibarr-$VERSION" "$INSTALLDIR" -echo "=== Konfiguration übernehmen ===" -cp /etc/dolibarr/conf.php "$INSTALLDIR/htdocs/conf/" +echo "[9/10] Konfiguration übernehmen..." + +cp /etc/dolibarr/conf.php +"$INSTALLDIR/htdocs/conf/" -echo "=== Custom-Verzeichnis übernehmen, falls vorhanden ===" if [ -d "$OLDDIR/htdocs/custom" ]; then -cp -a "$OLDDIR/htdocs/custom" "$INSTALLDIR/htdocs/" +cp -a +"$OLDDIR/htdocs/custom" +"$INSTALLDIR/htdocs/" fi -echo "=== Rechte setzen ===" +echo "[10/10] Rechte setzen..." + chown -R www-data:www-data "$INSTALLDIR" chown -R www-data:www-data /var/lib/dolibarr -echo "=== Apache Neustart ===" systemctl restart apache2 -echo "=== install.lock wieder setzen ===" touch /var/lib/dolibarr/documents/install.lock -chown www-data:www-data /var/lib/dolibarr/documents/install.lock -chmod 644 /var/lib/dolibarr/documents/install.lock +chown www-data:www-data +/var/lib/dolibarr/documents/install.lock + +chmod 644 +/var/lib/dolibarr/documents/install.lock echo "" -echo "=====================================" -echo "Update vorbereitet." -echo "Jetzt im Browser aufrufen:" +echo "=========================================" +echo "Update vorbereitet" echo "" +echo "Backups:" +echo "$BACKUPDIR" +echo "" +echo "Nächster Schritt:" echo "/dolibarr/install" echo "" -echo "Danach Datenbankmigration durchführen." -echo "=====================================" +echo "Danach Datenbankmigration ausführen" +echo "========================================="