Sobre o projeto
Clean Wizard é um utilitário de linha de comando para liberar espaço em disco em máquinas de desenvolvimento macOS e Linux. Ele reúne 13 limpadores especializados que visam dados obsoletos, como gerações antigas do Nix, downloads do Homebrew, imagens e volumes do Docker, caches do Cargo e Go, caches de npm/pnpm/yarn/bun, artefatos do Gradle/Maven/SBT, Xcode DerivedData, CocoaPods, pip e ccache, arquivos temporários, binários compilados obsoletos, grandes blobs do git e caches do golangci-lint.
Cada limpador detecta se a ferramenta alvo está instalada e ignora as indisponíveis em vez de falhar. Três modos predefinidos são fornecidos: quick (um subconjunto seguro), standard (todos os limpadores disponíveis) e aggressive (inclui caches do sistema e volumes completos do Docker).
Os recursos de segurança incluem um modo dry-run que pré-visualiza as ações sem tocar no sistema de arquivos, diálogos de confirmação antes da exclusão, proteção da geração atual do Nix e classificação de erros que tenta novamente falhas transitórias enquanto ignora ferramentas indisponíveis.
O uso é centrado em dois comandos: `clean-wizard clean` para limpeza e `clean-wizard scan` para relatar o espaço recuperável sem excluir nada. As flags cobrem seleção de modo, caminho e perfil de configuração, dry-run, saída JSON, log detalhado, ignorar prompts, contagem e perfil de tentativas, e limites de concorrência. A configuração é carregada de um arquivo YAML, tipicamente em ~/.config/clean-wizard/config.yaml, permitindo predefinições personalizadas, retenção de gerações do Nix, tempos limite do Docker e inclusão de volumes, e regras de idade e exclusão de arquivos temporários.
O projeto é escrito em Go e requer GOEXPERIMENT=jsonv2 ao compilar, ou um devShell do Nix que o define automaticamente. Sua arquitetura usa enums com segurança de tipos para tipos de cache, um registro de limpadores thread-safe, injeção de dependência via samber/do v2, um motor de fluxo de trabalho baseado em Azure/go-workflow com execução paralela e retry, um tipo funcional de tratamento de erros Result[T], e classificação de erros que orienta decisões de retry e códigos de saída. O README afirma que o projeto tem mais de 300 testes abrangendo testes unitários, de integração, BDD (Ginkgo), benchmarks e fuzz testing.
Clean Wizard é apresentado como o sucessor do SystemNix, um script shell POSIX, adicionando dry-run, uma TUI interativa, saída JSON, perfis YAML e tratamento classificado de erros. É licenciado sob MIT, com documentação hospedada em cleanwizard.lars.software.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.