#!/bin/bash
set -u

VERSION="7.2.11"
URL="https://github.com/subhra74/xdm/releases/download/${VERSION}/xdm-setup-${VERSION}.tar.xz"
TMPDIR="$(mktemp -d /tmp/xdm-installer.XXXXXX)"
ARCHIVE="$TMPDIR/xdm-setup-${VERSION}.tar.xz"
LOG="$TMPDIR/install.log"
trap 'rm -rf "$TMPDIR"' EXIT

if [ "$(uname -m)" != "x86_64" ]; then
  zenity --error --title="XDM Installer" --text="Bộ cài này chỉ hỗ trợ hệ thống 64-bit x86_64/amd64."
  exit 1
fi

if [ -d /opt/xdman ]; then
  if zenity --question --title="XDM Installer" --text="XDM có vẻ đã được cài đặt. Bạn có muốn cài lại phiên bản ${VERSION} không?"; then
    :
  else
    exit 0
  fi
fi

(
  echo "10"; echo "# Đang kiểm tra kết nối Internet..."
  curl -I -L --connect-timeout 15 --max-time 30 "$URL" >/dev/null 2>>"$LOG" || exit 10

  echo "25"; echo "# Đang tải Xtreme Download Manager ${VERSION}..."
  curl -L --fail --retry 3 --connect-timeout 20 -o "$ARCHIVE" "$URL" >>"$LOG" 2>&1 || exit 11

  echo "55"; echo "# Đang giải nén bộ cài..."
  tar -xJf "$ARCHIVE" -C "$TMPDIR" >>"$LOG" 2>&1 || exit 12

  INSTALL_SH="$(find "$TMPDIR" -maxdepth 3 -type f -name install.sh | head -n1)"
  [ -n "$INSTALL_SH" ] || exit 13
  chmod +x "$INSTALL_SH"

  echo "70"; echo "# Đang yêu cầu quyền quản trị..."
  pkexec env DISPLAY="${DISPLAY:-}" XAUTHORITY="${XAUTHORITY:-}" bash "$INSTALL_SH" >>"$LOG" 2>&1 || exit 14

  echo "100"; echo "# Cài đặt hoàn tất."
) | zenity --progress --title="XDM Installer" --text="Chuẩn bị cài đặt..." --percentage=0 --auto-close --no-cancel
STATUS=${PIPESTATUS[0]}

if [ "$STATUS" -eq 0 ]; then
  zenity --info --title="XDM Installer" --text="Đã cài đặt Xtreme Download Manager ${VERSION} thành công.\n\nBạn có thể mở XDM từ menu ứng dụng."
else
  zenity --error --title="XDM Installer" --text="Cài đặt không thành công.\n\nMã lỗi: $STATUS\nHãy kiểm tra kết nối Internet và thử lại."
  exit "$STATUS"
fi
