#!/usr/bin/env bash
set -Eeuo pipefail

REPO_URL="https://mydeskviewer.com/apt"
KEY_URL="${REPO_URL}/mydeskviewer-archive-keyring.gpg"
KEYRING="/etc/apt/keyrings/mydeskviewer.gpg"
SOURCE_FILE="/etc/apt/sources.list.d/mydeskviewer.sources"
PACKAGE="mydeskviewerl"

if [[ "${EUID}" -eq 0 ]]; then
    SUDO=""
else
    if ! command -v sudo >/dev/null 2>&1; then
        echo "ERROR: sudo is required. Run this script as root or install sudo."
        exit 1
    fi
    SUDO="sudo"
fi

ARCH="$(dpkg --print-architecture 2>/dev/null || true)"
if [[ "${ARCH}" != "amd64" ]]; then
    echo "ERROR: MyDeskViewer currently supports amd64 only."
    echo "Detected architecture: ${ARCH:-unknown}"
    exit 1
fi

echo
echo "============================================================"
echo " MyDeskViewer for Linux - APT installer"
echo "============================================================"
echo

echo "[1/5] Installing required tools..."
$SUDO apt-get update
$SUDO apt-get install -y ca-certificates curl

echo "[2/5] Installing MyDeskViewer repository key..."
$SUDO install -d -m 0755 /etc/apt/keyrings

TMP_KEY="$(mktemp)"
trap 'rm -f "$TMP_KEY"' EXIT

curl -fsSL "$KEY_URL" -o "$TMP_KEY"

if [[ ! -s "$TMP_KEY" ]]; then
    echo "ERROR: Repository key download failed or returned an empty file."
    exit 1
fi

$SUDO install -m 0644 "$TMP_KEY" "$KEYRING"

echo "[3/5] Configuring MyDeskViewer APT repository..."

# Remove obsolete source definitions from previous/manual installs.
$SUDO rm -f \
    /etc/apt/sources.list.d/mydeskviewer.list \
    /etc/apt/sources.list.d/mydeskviewer.list.save \
    /etc/apt/sources.list.d/mydeskviewer.sources.save

cat <<EOF | $SUDO tee "$SOURCE_FILE" >/dev/null
Types: deb
URIs: ${REPO_URL}/
Suites: stable
Components: main
Architectures: amd64
Signed-By: ${KEYRING}
EOF

echo "[4/5] Refreshing package lists..."
$SUDO apt-get update

echo "[5/5] Installing MyDeskViewer..."
$SUDO apt-get install -y "$PACKAGE"

echo
echo "============================================================"
echo " MyDeskViewer installed successfully"
echo "============================================================"
echo
echo "Start it from the application menu or run:"
echo
echo "  mydeskviewerl"
echo
