#!/bin/sh
# installer-deb FICHIER.deb — installe un paquet .deb et ses dépendances.
# Lancé en administrateur par « Installer un paquet » (p2i-installer-paquet),
# après demande du mot de passe (pkexec).
set -u
fichier="${1:-}"
case "$fichier" in
    /*.deb) ;;
    *) echo "Fichier non accepté : il faut le chemin complet d'un fichier .deb" >&2; exit 2 ;;
esac
[ -f "$fichier" ] || { echo "Fichier introuvable : $fichier" >&2; exit 2; }
dpkg-deb --fsys-tarfile "$fichier" >/dev/null 2>&1 \
    || { echo "Ce fichier est incomplet ou n'est pas un paquet valide." >&2; exit 3; }

export DEBIAN_FRONTEND=noninteractive PATH=/usr/sbin:/usr/bin:/sbin:/bin
# apt lit le paquet sous son propre compte : on travaille sur une copie lisible
copie="$(mktemp --suffix=.deb /tmp/p2i-paquet-XXXXXX)" || exit 4
trap 'rm -f "$copie"' EXIT
cp -- "$fichier" "$copie" && chmod 644 "$copie" || exit 4

echo "Mise à jour de la liste des logiciels…"
# Sans réseau, on n'attend pas : le paquet s'installe si ses dépendances sont déjà là
apt-get update -qq -o Acquire::http::Timeout=8 -o Acquire::https::Timeout=8 -o Acquire::Retries=0 2>&1 | tail -3
echo "Installation…"
apt-get install -y -q -o Dpkg::Progress-Fancy=0 -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold "$copie"
