diff --git a/configs/releng/airootfs/usr/local/bin/fws-update b/configs/releng/airootfs/usr/local/bin/fws-update new file mode 100755 index 0000000..c8acd4a --- /dev/null +++ b/configs/releng/airootfs/usr/local/bin/fws-update @@ -0,0 +1,33 @@ +#!/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. " _