#!/bin/bash

set -e

### ===== CONFIG =====
PKG="qemu-guest-agent"
SERVICE="qemu-guest-agent"
DEVICE="/dev/virtio-ports/org.qemu.guest_agent.0"
### ==================

echo "=========================================="
echo " QEMU Guest Agent - Installation & Check"
echo "=========================================="
echo

### 1️⃣ Vérification OS
if [ ! -f /etc/os-release ]; then
  echo "❌ Impossible de détecter le système."
  exit 1
fi

. /etc/os-release

if [ "$ID" != "debian" ]; then
  echo "❌ Ce script est prévu pour Debian uniquement."
  exit 1
fi

echo "✅ OS détecté : Debian $VERSION_ID ($VERSION_CODENAME)"
echo

### 2️⃣ Vérification installation
if dpkg -s "$PKG" &>/dev/null; then
  INSTALLED_VERSION=$(dpkg -s "$PKG" | awk -F': ' '/Version/{print $2}')
  echo "✅ $PKG déjà installé (version : $INSTALLED_VERSION)"
  echo "🔄 Vérification des mises à jour..."
  apt update -qq
  apt install --only-upgrade -y "$PKG"
else
  echo "📦 $PKG non installé → installation..."
  apt update -qq
  apt install -y "$PKG"
fi

echo

### 3️⃣ Démarrage du service
echo "▶️ Démarrage du service $SERVICE..."
systemctl start "$SERVICE"

sleep 1

### 4️⃣ Vérification du service
if systemctl is-active --quiet "$SERVICE"; then
  echo "✅ Service $SERVICE actif"
else
  echo "❌ Le service $SERVICE ne démarre pas"
  systemctl status "$SERVICE" --no-pager
  exit 1
fi

echo

### 5️⃣ Vérification du device QEMU
echo "🔌 Vérification du device QEMU..."
if [ -e "$DEVICE" ]; then
  echo "✅ Device QEMU détecté : $DEVICE"
else
  echo "⚠️ Device QEMU NON détecté"
  echo "👉 L’agent est installé MAIS l’hyperviseur n’est pas configuré"
fi

echo

### 6️⃣ Vérification processus
if pgrep -x qemu-ga >/dev/null; then
  echo "✅ Processus qemu-ga en cours d’exécution"
else
  echo "❌ Processus qemu-ga introuvable"
  exit 1
fi

echo
echo "=========================================="
echo " ✅ Vérifications terminées"
echo "=========================================="

### 7️⃣ Résumé
echo
echo "📋 RÉSUMÉ :"
echo " - Paquet          : $PKG installé"
echo " - Service         : actif"
echo " - Device QEMU     : $( [ -e "$DEVICE" ] && echo 'présent' || echo 'absent (config hyperviseur)' )"
echo
echo "ℹ️ Si le device est absent :"
echo "   - Proxmox → Options VM → QEMU Guest Agent → Activé"
echo "   - Puis redémarrer la VM"
echo
