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 ""
]]>