https://github.com/jcofer555/vm-backup-and-restore/releases/download/2026.05.27.01/unraid-vm-backup-and-restore-2026.05.27.01-noarch-1.txz cee94aaaba912b1b25cde38408b0b2208863575252df42c7dae8eb04a0845457 > "$USER_CFG" fi done < "$DEFAULT_CFG" fi # Rebuild ordered version (only known keys, drop extra lines) { for key in "${ordered_keys[@]}"; do grep -E "^[[:space:]]*${key}[[:space:]]*=" "$USER_CFG" done } > "$TMP_CFG" mv "$TMP_CFG" "$USER_CFG" # Ordered config keys restore_ordered_keys=( "LOCATION_OF_BACKUPS" "VMS_TO_RESTORE" "VERSIONS" "RESTORE_DESTINATION" "DRY_RUN_RESTORE" "NOTIFICATIONS_RESTORE" "NOTIFICATION_SERVICE_RESTORE" "WEBHOOK_URL_RESTORE" "PUSHOVER_USER_KEY_RESTORE" ) # ========================================================== # CONFIG MANAGEMENT # ========================================================== if [ ! -f "$RESTORE_USER_CFG" ]; then cp "$RESTORE_DEFAULT_CFG" "$RESTORE_USER_CFG" else # Add missing keys from default while IFS='=' read -r key val; do [[ -z "$key" || "$key" =~ ^[[:space:]]*# ]] && continue if ! grep -q -E "^[[:space:]]*${key}[[:space:]]*=" "$RESTORE_USER_CFG"; then echo "$key=$val" >> "$RESTORE_USER_CFG" fi done < "$RESTORE_DEFAULT_CFG" fi # Rebuild ordered version (only known keys, drop extra lines) { for key in "${restore_ordered_keys[@]}"; do grep -E "^[[:space:]]*${key}[[:space:]]*=" "$RESTORE_USER_CFG" done } > "$RESTORE_TMP_CFG" mv "$RESTORE_TMP_CFG" "$RESTORE_USER_CFG" # Remove older txz packages (keep only the current one) find /boot/config/plugins/vm-backup-and-restore/ -maxdepth 1 -type f -name "unraid-vm-backup-and-restore-*.txz" ! -name "unraid-vm-backup-and-restore-2026.05.27.01-noarch-1.txz" -delete echo "" echo "----------------------------------------------------" echo " vm-backup-and-restore has been installed." echo " Version: 2026.05.27.01" echo "----------------------------------------------------" echo "" ]]>