#!/bin/bash
# mobian_vm_signed.sh
# Télécharge dernière image Mobian signée, lance VM, sauvegarde incrémentale

set -euo pipefail

BASE_URL="${1:-https://images.mobian.org/amd64/weekly/}"
WORKDIR="${2:-/var/lib/mobian_vm}"
BACKUPDIR="${3:-/var/backups/mobian}"

mkdir -p "$WORKDIR" "$BACKUPDIR"
cd "$WORKDIR"

echo "[1] Recherche dernière image signée"
INDEX=$(wget -qO- "$BASE_URL")
# cherche uniquement les images avec .img.xz et .sha256 existants
IMG_NAME=$(echo "$INDEX" | grep -oP 'mobian-amd64-\d{6,8}\.img\.xz' | sort | tail -n1)

if [ -z "$IMG_NAME" ]; then
  echo "Aucune image signée trouvée dans $BASE_URL"
  exit 1
fi

echo "→ Image trouvée: $IMG_NAME"

# Téléchargement
echo "[2] Téléchargement image + signatures"
wget -N "$BASE_URL$IMG_NAME" \
        "$BASE_URL$IMG_NAME.sha256" \
        "$BASE_URL$IMG_NAME.asc"

# Vérification SHA256
echo "[3] Vérification SHA256"
sha256sum -c "$IMG_NAME.sha256"

# Vérification GPG
echo "[4] Vérification GPG"
gpg --keyserver keyserver.ubuntu.com --recv-keys 0x1CE2AFD36DBA9F48
gpg --verify "$IMG_NAME.asc" "$IMG_NAME"

RAW_IMG="${IMG_NAME%.xz}"

# Extraction si nécessaire
if [ ! -f "$RAW_IMG" ]; then
  xz -dk "$IMG_NAME"
fi

## Arrêt éventuelle ancienne VM
#pkill -f "qemu-system-x86_64.*$RAW_IMG" || true
#
## Lancement VM
#echo "[5] Lancement VM"
#nohup qemu-system-x86_64 \
#  -m 2048 -smp 2 \
#  -drive file="$RAW_IMG",format=raw \
#  -nic user,hostfwd=tcp::2222-:22 \
#  -nographic >"$WORKDIR/qemu.log" 2>&1 &
#
## Sauvegarde incrémentale
#echo "[6] Sauvegarde incrémentale"
#TODAY=$(date +%F)
#rsync -a --link-dest="$BACKUPDIR/latest" \
#  "$RAW_IMG" \
#  "$BACKUPDIR/$TODAY/"
#ln -sfn "$BACKUPDIR/$TODAY" "$BACKUPDIR/latest"
#
#echo "[OK] VM active sur port 2222 (SSH/X11)."
#echo "Depuis smartphone :"
#echo "  ssh -p 2222 -C -X user@serveur"
#echo "Puis lancer startlxqt ou autre session graphique."

