From 084706a3d5d6064c34b4db216aa24214af6240ad Mon Sep 17 00:00:00 2001 From: MickLesk Date: Sat, 1 Aug 2026 22:35:32 +0200 Subject: [PATCH] use create_backup und restore_backup --- tools/addon/adguardhome-sync.sh | 10 +++----- tools/addon/cronmaster.sh | 10 +++----- tools/addon/filebrowser-quantum.sh | 1 - tools/addon/immich-public-proxy.sh | 12 +++------- tools/addon/jellystat.sh | 10 +++----- tools/addon/phpmyadmin.sh | 38 ++++++++++++++---------------- 6 files changed, 30 insertions(+), 51 deletions(-) diff --git a/tools/addon/adguardhome-sync.sh b/tools/addon/adguardhome-sync.sh index 72462e8b0..fdc037d0a 100644 --- a/tools/addon/adguardhome-sync.sh +++ b/tools/addon/adguardhome-sync.sh @@ -92,16 +92,12 @@ function update() { fi msg_ok "Stopped service" - msg_info "Backing up configuration" - cp "$CONFIG_PATH" /tmp/adguardhome-sync.yaml.bak 2>/dev/null || true - msg_ok "Backed up configuration" + BACKUP_DIR="/opt/adguardhome-sync_backup" + create_backup "$CONFIG_PATH" CLEAN_INSTALL=1 fetch_and_deploy_gh_release "adguardhome-sync" "bakito/adguardhome-sync" "prebuild" "latest" "$INSTALL_PATH" "adguardhome-sync_*_linux_amd64.tar.gz" - msg_info "Restoring configuration" - cp /tmp/adguardhome-sync.yaml.bak "$CONFIG_PATH" 2>/dev/null || true - rm -f /tmp/adguardhome-sync.yaml.bak - msg_ok "Restored configuration" + restore_backup msg_info "Starting service" if [[ "$OS" == "Alpine" ]]; then diff --git a/tools/addon/cronmaster.sh b/tools/addon/cronmaster.sh index d46c57fa9..edd611558 100644 --- a/tools/addon/cronmaster.sh +++ b/tools/addon/cronmaster.sh @@ -62,16 +62,12 @@ function update() { systemctl stop cronmaster.service &>/dev/null || true msg_ok "Stopped service" - msg_info "Backing up configuration" - cp "$CONFIG_PATH" /tmp/cronmaster.env.bak 2>/dev/null || true - msg_ok "Backed up configuration" + BACKUP_DIR="/opt/cronmaster_backup" + create_backup "$CONFIG_PATH" CLEAN_INSTALL=1 fetch_and_deploy_gh_release "cronmaster" "fccview/cronmaster" "prebuild" "latest" "$INSTALL_PATH" "cronmaster_*_prebuild.tar.gz" - msg_info "Restoring configuration" - cp /tmp/cronmaster.env.bak "$CONFIG_PATH" 2>/dev/null || true - rm -f /tmp/cronmaster.env.bak - msg_ok "Restored configuration" + restore_backup msg_info "Starting service" systemctl start cronmaster diff --git a/tools/addon/filebrowser-quantum.sh b/tools/addon/filebrowser-quantum.sh index afb22ee06..9cbcfb8e3 100644 --- a/tools/addon/filebrowser-quantum.sh +++ b/tools/addon/filebrowser-quantum.sh @@ -11,7 +11,6 @@ INSTALL_PATH="/usr/local/bin/filebrowser" CONFIG_PATH="/usr/local/community-scripts/fq-config.yaml" DEFAULT_PORT=8080 SRC_DIR="/" -TMP_BIN="/tmp/filebrowser.$$" source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/core.func) source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/tools.func) diff --git a/tools/addon/immich-public-proxy.sh b/tools/addon/immich-public-proxy.sh index ad22d5ab5..f9ece01a7 100644 --- a/tools/addon/immich-public-proxy.sh +++ b/tools/addon/immich-public-proxy.sh @@ -68,19 +68,13 @@ function update() { systemctl stop immich-proxy.service &>/dev/null || true msg_ok "Stopped service" - msg_info "Backing up configuration" - cp "$CONFIG_PATH"/.env /tmp/ipp.env.bak 2>/dev/null || true - cp "$CONFIG_PATH"/config.json /tmp/ipp.config.json.bak 2>/dev/null || true - msg_ok "Backed up configuration" + BACKUP_DIR="/opt/immich-public-proxy_backup" + create_backup "$CONFIG_PATH"/.env "$CONFIG_PATH"/config.json NODE_VERSION="24" setup_nodejs CLEAN_INSTALL=1 fetch_and_deploy_gh_release "Immich Public Proxy" "alangrainger/immich-public-proxy" "tarball" "latest" "$INSTALL_PATH" - msg_info "Restoring configuration" - cp /tmp/ipp.env.bak "$CONFIG_PATH"/.env 2>/dev/null || true - cp /tmp/ipp.config.json.bak "$CONFIG_PATH"/config.json 2>/dev/null || true - rm -f /tmp/ipp.*.bak - msg_ok "Restored configuration" + restore_backup msg_info "Installing dependencies" cd "$CONFIG_PATH" diff --git a/tools/addon/jellystat.sh b/tools/addon/jellystat.sh index 36d451416..627b07a77 100644 --- a/tools/addon/jellystat.sh +++ b/tools/addon/jellystat.sh @@ -87,16 +87,12 @@ function update() { systemctl stop jellystat.service &>/dev/null || true msg_ok "Stopped service" - msg_info "Backing up configuration" - cp "$CONFIG_PATH" /tmp/jellystat.env.bak 2>/dev/null || true - msg_ok "Backed up configuration" + BACKUP_DIR="/opt/jellystat_backup" + create_backup "$CONFIG_PATH" CLEAN_INSTALL=1 fetch_and_deploy_gh_release "jellystat" "CyferShepard/Jellystat" "tarball" "latest" "$INSTALL_PATH" - msg_info "Restoring configuration" - cp /tmp/jellystat.env.bak "$CONFIG_PATH" 2>/dev/null || true - rm -f /tmp/jellystat.env.bak - msg_ok "Restored configuration" + restore_backup msg_info "Installing dependencies" cd "$INSTALL_PATH" diff --git a/tools/addon/phpmyadmin.sh b/tools/addon/phpmyadmin.sh index d54d86456..5ea771f1d 100644 --- a/tools/addon/phpmyadmin.sh +++ b/tools/addon/phpmyadmin.sh @@ -112,7 +112,7 @@ function install_php_and_modules() { function install_phpmyadmin() { 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_RAW=$(curl -fsSL 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" @@ -122,13 +122,15 @@ function install_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 + tarball=$(mktemp) + if ! curl -fsSL "$TARBALL_URL" -o "$tarball"; then msg_error "Download failed: $TARBALL_URL" exit 115 fi mkdir -p "$INSTALL_DIR" - tar xf /tmp/phpmyadmin.tar.gz --strip-components=1 -C "$INSTALL_DIR" + tar xf "$tarball" --strip-components=1 -C "$INSTALL_DIR" + rm -f "$tarball" } function configure_phpmyadmin() { @@ -215,7 +217,7 @@ function uninstall_phpmyadmin() { function update_phpmyadmin() { 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_RAW=$(curl -fsSL 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 @@ -226,30 +228,26 @@ function update_phpmyadmin() { TARBALL_URL="https://files.phpmyadmin.net/phpMyAdmin/${LATEST_VERSION}/phpMyAdmin-${LATEST_VERSION}-all-languages.tar.gz" msg_info "Downloading ${TARBALL_URL}" + tarball=$(mktemp) - if ! curl -fsSL "$TARBALL_URL" -o /tmp/phpmyadmin.tar.gz; then + if ! curl -fsSL "$TARBALL_URL" -o "$tarball"; then msg_error "Download failed: $TARBALL_URL" exit 115 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") + BACKUP_DIR="/opt/phpmyadmin_backup" + create_backup \ + "$INSTALL_DIR/config.inc.php" \ + "$INSTALL_DIR/upload" \ + "$INSTALL_DIR/save" \ + "$INSTALL_DIR/tmp" \ + "$INSTALL_DIR/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" + tar xf "$tarball" --strip-components=1 -C "$INSTALL_DIR" + rm -f "$tarball" 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" + restore_backup configure_phpmyadmin }