Cet article présente une fonction Zsh nommée "update" conçue pour simplifier le nettoyage et la mise à jour des outils de développement. L'idée principale est de centraliser en une seule commande la gestion de plusieurs utilitaires courants tels que Homebrew, Docker, nvm et les worktrees Git. Cela permet de libérer de l'espace disque et d'éviter l'accumulation de données inutiles laissées par ces outils.
La fonction aborde le problème de l'espace disque saturé en identifiant et en supprimant les "déchets" spécifiques à chaque outil. Pour les worktrees Git, elle recherche et supprime ceux qui sont orphelins, c'est-à-dire qui ne correspondent plus à une branche active. Dans le cas de nvm, elle gère la suppression des versions de Node.js obsolètes ou inutilisées, tout en proposant des mécanismes de sauvegarde et de confirmation.
Enfin, la fonction "update" utilise topgrade pour orchestrer les mises à jour des différents paquets et applications. Elle intègre également des commandes spécifiques pour nettoyer les caches Homebrew, les images et volumes Docker non utilisés, et offre un bilan détaillé de l'espace récupéré en gigaoctets avant de confirmer les actions.
Topgrade est un outil open source écrit en Rust qui automatise la mise à jour de multiples gestionnaires de paquets et logiciels sur un système. Il détecte les outils installés (comme apt, pacman, Homebrew, etc.) et exécute les commandes appropriées pour les mettre à jour, simplifiant ainsi la maintenance du système. Ce projet est un fork maintenu du logiciel original topgrade par r-darwish.
L'installation est possible sur diverses plateformes via des méthodes officielles (binaires auto-mis à jour, gestionnaires de paquets comme Homebrew ou APT) ou communautaires (Scoop, NixOS, etc.). Une fois installé, il suffit d'exécuter topgrade pour lancer la mise à jour globale. Une configuration personnalisable au format TOML permet d'ajuster son comportement.
Le projet suit une politique de versions stables (MSRV) et documente les changements majeurs dans ses notes de version. Les fichiers de configuration sont recherchés dans des emplacements standardisés selon le système d'exploitation, comme %APPDATA% sous Windows ou ~/.config sous Unix.