#!/bin/bash ############################################################### # name: MAJ.ksh # Description : Automatise les mises a jours Paquets + OS # #--------------------------------------------------------------------------- # # Auteur : LeBartal # # Date de création : 19/04/2023 # ############################################################### if [[ -z "${ROOT_DIR}" ]]; then echo "Erreur : Veuillez lancer ce script via le menu.ksh principal." exit 1 fi # ---------- Couleurs (facultatives) ---------- # Certaines consoles ne supportent pas tput, on prévoit un fallback vide. RED=$(tput setaf 1 2>/dev/null || printf '') GREEN=$(tput setaf 2 2>/dev/null || printf '') YELLOW=$(tput setaf 3 2>/dev/null || printf '') RESET=$(tput sgr0 2>/dev/null || printf '') # ---------- Fonction de journalisation ---------- log() { # $1 = niveau (INFO|OK|ERR) # $2 = message case "$1" in INFO) printf '%b[INFO] %s%b\n' "$YELLOW" "$2" "$RESET" ;; OK) printf '%b[OK] %s%b\n' "$GREEN" "$2" "$RESET" ;; ERR) printf '%b[ERROR] %s%b\n' "$RED" "$2" "$RESET" ;; *) printf '[%s] %s\n' "$1" "$2" ;; esac } # ---------- Wrapper d’exécution de commande ---------- run_cmd() { # On exécute la commande passée en arguments séparés # "$@" préserve les espaces éventuels dans chaque argument. "$@" rc=$? if [ $rc -ne 0 ]; then log ERR "Commande \"$*\" échouée (code $rc)" exit $rc else log OK "Commande \"$*\" réussie" fi } # ---------- Étapes de mise à jour ---------- update_pkg_list() { log INFO "Mise à jour de la liste des paquets…" run_cmd apt-get update -y } upgrade_installed() { log INFO "Mise à jour des paquets déjà installés…" run_cmd apt-get upgrade -y } dist_upgrade_os() { log INFO "Dist-upgrade de l’OS…" run_cmd apt-get dist-upgrade -y } autoremove_obsolete() { log INFO "Suppression des paquets obsolètes…" run_cmd apt-get autoremove -y } clean_cache() { log INFO "Nettoyage du cache des paquets…" run_cmd apt-get clean -y } # ---------- Point d’entrée ---------- main() { update_pkg_list upgrade_installed dist_upgrade_os autoremove_obsolete clean_cache log OK "Mise à jour terminée avec succès." } # Lancer le script main "$@"