À propos du projet
Clean Wizard est un utilitaire en ligne de commande pour récupérer de l'espace disque sur les machines de développement macOS et Linux. Il regroupe 13 nettoyeurs spécialisés qui ciblent les données obsolètes telles que les anciennes générations Nix, les téléchargements Homebrew, les images et volumes Docker, les caches Cargo et Go, les caches npm/pnpm/yarn/bun, les artefacts Gradle/Maven/SBT, Xcode DerivedData, CocoaPods, pip et ccache, les fichiers temporaires, les binaires compilés obsolètes, les gros blobs git et les caches golangci-lint.
Chaque nettoyeur détecte si son outil cible est installé et ignore ceux qui ne sont pas disponibles plutôt que d'échouer. Trois modes prédéfinis sont fournis : quick (un sous-ensemble sûr), standard (tous les nettoyeurs disponibles) et aggressive (inclut les caches système et les volumes Docker complets).
Les fonctionnalités de sécurité incluent un mode dry-run qui prévisualise les actions sans toucher au système de fichiers, des boîtes de confirmation avant suppression, la protection de la génération Nix actuelle, et une classification des erreurs qui réessaie les échecs transitoires tout en ignorant les outils indisponibles.
L'utilisation s'articule autour de deux commandes : `clean-wizard clean` pour le nettoyage et `clean-wizard scan` pour signaler l'espace récupérable sans rien supprimer. Les options couvrent la sélection du mode, le chemin et le profil de configuration, le dry-run, la sortie JSON, la journalisation verbeuse, l'omission des invites, le nombre de tentatives et le profil, ainsi que les limites de concurrence. La configuration est chargée depuis un fichier YAML, généralement à ~/.config/clean-wizard/config.yaml, permettant des préréglages personnalisés, la rétention des générations Nix, les délais d'attente Docker et l'inclusion des volumes, ainsi que les règles d'âge et d'exclusion des fichiers temporaires.
Le projet est écrit en Go et nécessite GOEXPERIMENT=jsonv2 lors de la compilation, ou un devShell Nix qui le définit automatiquement. Son architecture utilise des énumérations typées pour les types de cache, un registre de nettoyeurs thread-safe, l'injection de dépendances via samber/do v2, un moteur de workflow basé sur Azure/go-workflow avec exécution parallèle et nouvelle tentative, un type de gestion d'erreurs fonctionnel Result[T], et une classification des erreurs pilotant les décisions de nouvelle tentative et de code de sortie. Le README indique que le projet compte plus de 300 tests couvrant les tests unitaires, d'intégration, BDD (Ginkgo), les benchmarks et les tests de fuzzing.
Clean Wizard est présenté comme le successeur de SystemNix, un script shell POSIX, ajoutant le dry-run, une TUI interactive, une sortie JSON, des profils YAML et une gestion classifiée des erreurs. Il est sous licence MIT, avec une documentation hébergée sur cleanwizard.lars.software.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.