#!/bin/bash
# FWS — mise à jour du système en une commande (bouton de la barre, fws-hello,
# ou terminal). pacman -Syu + nettoyage du cache + rapport des orphelins.
set -u
say() { printf '\n\033[1;34m==> %s\033[0m\n' "$*"; }

if [ "$(id -u)" -ne 0 ]; then
    exec sudo "$0" "$@"
fi

say "Mise à jour du système (pacman -Syu)…"
pacman -Syu || { echo "Échec de la mise à jour (réseau ?)"; read -rp "Entrée pour fermer. " _; exit 1; }

if command -v paccache >/dev/null 2>&1; then
    say "Nettoyage du cache des paquets (2 dernières versions gardées)…"
    paccache -rk2
fi

ORPHANS="$(pacman -Qtdq 2>/dev/null)"
if [ -n "$ORPHANS" ]; then
    say "Paquets orphelins (plus requis par rien) :"
    echo "$ORPHANS"
    read -rp "Les supprimer ? [o/N] " _rm
    case "$_rm" in o|O|oui) echo "$ORPHANS" | pacman -Rns --noconfirm - ;; esac
fi

if command -v flatpak >/dev/null 2>&1; then
    say "Mise à jour des Flatpaks…"
    flatpak update -y || true
fi

say "Système à jour ✔"
read -rp "Entrée pour fermer. " _
