Об этом проекте
Clean Wizard — это утилита командной строки для освобождения места на диске на машинах разработчиков под macOS и Linux. Она объединяет 13 специализированных очистителей, нацеленных на устаревшие данные: старые поколения Nix, загрузки Homebrew, образы и тома Docker, кэши Cargo и Go, кэши npm/pnpm/yarn/bun, артефакты Gradle/Maven/SBT, Xcode DerivedData, CocoaPods, pip и ccache, временные файлы, устаревшие скомпилированные бинарники, крупные git-блобы и кэши golangci-lint.
Каждый очиститель определяет, установлен ли соответствующий инструмент, и пропускает недоступные, а не завершается с ошибкой. Предусмотрены три режима-пресета: quick (безопасное подмножество), standard (все доступные очистители) и aggressive (включает системные кэши и полные тома Docker).
К функциям безопасности относятся режим dry-run, который показывает действия без обращения к файловой системе, диалоги подтверждения перед удалением, защита текущего поколения Nix и классификация ошибок, которая повторяет временные сбои и пропускает недоступные инструменты.
Использование сосредоточено на двух командах: `clean-wizard clean` для очистки и `clean-wizard scan` для отчёта об освобождаемом месте без удаления чего-либо. Флаги охватывают выбор режима, путь и профиль конфигурации, dry-run, вывод JSON, подробное логирование, пропуск запросов, число и профиль повторных попыток, а также ограничения параллелизма. Конфигурация загружается из файла YAML, обычно по пути ~/.config/clean-wizard/config.yaml, что позволяет задавать пользовательские пресеты, хранение поколений Nix, тайм-ауты Docker и включение томов, а также правила возраста и исключения временных файлов.
Проект написан на Go и требует GOEXPERIMENT=jsonv2 при сборке либо Nix devShell, который задаёт его автоматически. Его архитектура использует типобезопасные перечисления для типов кэша, потокобезопасный реестр очистителей, внедрение зависимостей через samber/do v2, движок рабочих процессов на основе Azure/go-workflow с параллельным выполнением и повторными попытками, функциональный тип обработки ошибок Result[T] и классификацию ошибок, определяющую повторные попытки и коды выхода. В README указано, что проект имеет более 300 тестов, охватывающих модульные, интеграционные, BDD (Ginkgo), бенчмарки и фаззинг-тестирование.
Clean Wizard представлен как преемник SystemNix, сценария POSIX shell, добавляя dry-run, интерактивный TUI, вывод JSON, профили YAML и классифицированную обработку ошибок. Он распространяется под лицензией MIT, документация размещена на cleanwizard.lars.software.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.