Sobre el proyecto
Clean Wizard es una utilidad de línea de comandos para recuperar espacio en disco en máquinas de desarrollo macOS y Linux. Incluye 13 limpiadores especializados que se dirigen a datos obsoletos como generaciones antiguas de Nix, descargas de Homebrew, imágenes y volúmenes de Docker, cachés de Cargo y Go, cachés de npm/pnpm/yarn/bun, artefactos de Gradle/Maven/SBT, Xcode DerivedData, CocoaPods, pip y ccache, archivos temporales, binarios compilados obsoletos, blobs grandes de git y cachés de golangci-lint.
Cada limpiador detecta si su herramienta objetivo está instalada y omite las no disponibles en lugar de fallar. Se proporcionan tres modos predefinidos: quick (un subconjunto seguro), standard (todos los limpiadores disponibles) y aggressive (incluye cachés del sistema y volúmenes completos de Docker).
Las funciones de seguridad incluyen un modo dry-run que previsualiza las acciones sin tocar el sistema de archivos, diálogos de confirmación antes de eliminar, protección de la generación actual de Nix y clasificación de errores que reintenta fallos transitorios mientras omite herramientas no disponibles.
El uso se centra en dos comandos: `clean-wizard clean` para la limpieza y `clean-wizard scan` para informar el espacio recuperable sin eliminar nada. Los flags cubren la selección de modo, ruta y perfil de configuración, dry-run, salida JSON, registro detallado, omisión de prompts, número de reintentos y perfil, y límites de concurrencia. La configuración se carga desde un archivo YAML, normalmente en ~/.config/clean-wizard/config.yaml, lo que permite presets personalizados, retención de generaciones de Nix, tiempos de espera de Docker e inclusión de volúmenes, y reglas de antigüedad y exclusión de archivos temporales.
El proyecto está escrito en Go y requiere GOEXPERIMENT=jsonv2 al compilar, o un devShell de Nix que lo establezca automáticamente. Su arquitectura utiliza enums con seguridad de tipos para los tipos de caché, un registro de limpiadores thread-safe, inyección de dependencias mediante samber/do v2, un motor de flujo de trabajo basado en Azure/go-workflow con ejecución paralela y reintentos, un tipo funcional de manejo de errores Result[T], y una clasificación de errores que impulsa las decisiones de reintento y código de salida. El README indica que el proyecto tiene más de 300 pruebas que abarcan pruebas unitarias, de integración, BDD (Ginkgo), benchmarks y pruebas de fuzzing.
Clean Wizard se presenta como el sucesor de SystemNix, un script de shell POSIX, añadiendo dry-run, una TUI interactiva, salida JSON, perfiles YAML y manejo clasificado de errores. Tiene licencia MIT, con documentación alojada en cleanwizard.lars.software.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.