From 8a77edb9defba71fc2120b7dfb2b6e1688879bc4 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 29 Apr 2025 11:57:21 +0200 Subject: [PATCH] Update phpmyadmin.sh --- tools/addon/phpmyadmin.sh | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/tools/addon/phpmyadmin.sh b/tools/addon/phpmyadmin.sh index c97adc7..2630355 100644 --- a/tools/addon/phpmyadmin.sh +++ b/tools/addon/phpmyadmin.sh @@ -178,9 +178,10 @@ function uninstall_phpmyadmin() { } function update_phpmyadmin() { - msg_info "Fetching latest phpMyAdmin version from GitHub" + msg_info "Fetching latest phpMyAdmin release from GitHub" LATEST_VERSION_RAW=$(curl -s https://api.github.com/repos/phpmyadmin/phpmyadmin/releases/latest | grep tag_name | cut -d '"' -f4) LATEST_VERSION=$(echo "$LATEST_VERSION_RAW" | sed -e 's/^RELEASE_//' -e 's/_/./g') + if [[ -z "$LATEST_VERSION" ]]; then msg_error "Could not determine latest phpMyAdmin version from GitHub – falling back to 5.2.2" LATEST_VERSION="5.2.2" @@ -189,13 +190,31 @@ function update_phpmyadmin() { TARBALL_URL="https://files.phpmyadmin.net/phpMyAdmin/${LATEST_VERSION}/phpMyAdmin-${LATEST_VERSION}-all-languages.tar.gz" msg_info "Downloading ${TARBALL_URL}" + if ! curl -fsSL "$TARBALL_URL" -o /tmp/phpmyadmin.tar.gz; then msg_error "Download failed: $TARBALL_URL" exit 1 fi + BACKUP_DIR="/tmp/phpmyadmin-backup-$(date +%Y%m%d-%H%M%S)" + mkdir -p "$BACKUP_DIR" + BACKUP_ITEMS=("config.inc.php" "upload" "save" "tmp" "themes") + + msg_info "Backing up existing phpMyAdmin data" + for item in "${BACKUP_ITEMS[@]}"; do + [[ -e "$INSTALL_DIR/$item" ]] && cp -a "$INSTALL_DIR/$item" "$BACKUP_DIR/" && echo " ↪︎ $item" + done + msg_ok "Backup completed: $BACKUP_DIR" + tar xf /tmp/phpmyadmin.tar.gz --strip-components=1 -C "$INSTALL_DIR" - msg_ok "Updated phpMyAdmin to $LATEST_VERSION" + msg_ok "Extracted phpMyAdmin $LATEST_VERSION" + + msg_info "Restoring preserved files" + for item in "${BACKUP_ITEMS[@]}"; do + [[ -e "$BACKUP_DIR/$item" ]] && cp -a "$BACKUP_DIR/$item" "$INSTALL_DIR/" && echo " ↪︎ $item restored" + done + msg_ok "Restoration completed" + configure_phpmyadmin }