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

# À exécuter UNE FOIS *SUR LE VPS* (Debian/Ubuntu), avant de copier les fichiers.
# Installe imapsync + ses dépendances Perl, plus tmux/rsync/git.
# GAM n'est PAS installé ici : on copie le binaire + ~/.gam existants (voir
# deploy-vers-vps.sh) pour préserver la connexion Google déjà configurée.

echo ">>> Installation des dépendances (sudo requis)"

# Ubuntu 23.04 (ce VPS) est EOL : repointer les dépôts vers old-releases.
if ! sudo apt-get update -qq 2>/dev/null; then
  echo ">>> apt update a échoué — bascule vers old-releases.ubuntu.com (Ubuntu EOL)"
  # attrape tout hôte se terminant par archive/security.ubuntu.com (y compris
  # les miroirs cloud type nova.clouds.archive.ubuntu.com)
  sudo sed -i -E 's,https?://[a-z0-9._-]*(archive|security)\.ubuntu\.com,http://old-releases.ubuntu.com,g' /etc/apt/sources.list
  sudo sed -i -E 's,https?://[a-z0-9._-]*(archive|security)\.ubuntu\.com,http://old-releases.ubuntu.com,g' /etc/apt/sources.list.d/*.list 2>/dev/null || true
fi
sudo apt-get update
sudo apt-get install -y git rsync tmux \
  libauthen-ntlm-perl libcgi-pm-perl libcrypt-openssl-rsa-perl libdata-uniqid-perl \
  libdigest-hmac-perl libdigest-md5-file-perl libdist-checkconflicts-perl \
  libencode-imaputf7-perl libfile-copy-recursive-perl libfile-tail-perl libio-compress-perl \
  libio-socket-inet6-perl libio-socket-ssl-perl libio-tee-perl libjson-webtoken-perl \
  libmail-imapclient-perl libmodule-scandeps-perl libnet-ssleay-perl libpar-packer-perl \
  libproc-processtable-perl libreadonly-perl libregexp-common-perl libsys-meminfo-perl \
  libterm-readkey-perl libtest-fatal-perl libtest-mock-guard-perl libtest-mockobject-perl \
  libtest-requires-perl libtest-simple-perl libunicode-string-perl liburi-perl

# Module requis par imapsync pour l'auth XOAUTH2 service-account (clé Google).
# Pas toujours packagé : fallback cpan si absent des dépôts.
if ! perl -MCrypt::OpenSSL::PKCS12 -e1 2>/dev/null; then
  echo ">>> Installation de Crypt::OpenSSL::PKCS12 (auth OAuth)"
  sudo apt-get install -y libcrypt-openssl-pkcs12-perl 2>/dev/null || {
    sudo apt-get install -y cpanminus make gcc libssl-dev
    sudo cpanm --notest Crypt::OpenSSL::PKCS12
  }
fi

if ! command -v imapsync >/dev/null; then
  echo ">>> Installation d'imapsync"
  tmp="$(mktemp -d)"
  git clone --depth 1 https://github.com/imapsync/imapsync "$tmp/imapsync"
  sudo cp "$tmp/imapsync/imapsync" /usr/local/bin/imapsync
  rm -rf "$tmp"
fi

echo ">>> Architecture du VPS : $(uname -m)  (le binaire GAM copié doit être de la même archi, généralement x86_64)"
imapsync --version | head -1
echo ">>> OK. Lance maintenant deploy-vers-vps.sh depuis WSL pour copier GAM, ~/.gam et les scripts."
