프로젝트 소개
Clean Wizard는 macOS와 Linux 개발 머신에서 디스크 공간을 확보하기 위한 명령줄 유틸리티입니다. 오래된 Nix 세대, Homebrew 다운로드, Docker 이미지와 볼륨, Cargo 및 Go 캐시, npm/pnpm/yarn/bun 캐시, Gradle/Maven/SBT 아티팩트, Xcode DerivedData, CocoaPods, pip 및 ccache, 임시 파일, 오래된 컴파일된 바이너리, 대용량 git blob, golangci-lint 캐시와 같은 불필요한 데이터를 대상으로 하는 13개의 전용 클리너를 묶어 제공합니다.
각 클리너는 대상 도구가 설치되어 있는지 감지하고, 사용할 수 없는 도구는 실패하는 대신 건너뜁니다. 세 가지 프리셋 모드가 제공됩니다: quick(안전한 하위 집합), standard(사용 가능한 모든 클리너), aggressive(시스템 캐시와 전체 Docker 볼륨 포함).
안전 기능으로는 파일 시스템을 건드리지 않고 작업을 미리 보여주는 드라이런 모드, 삭제 전 확인 대화상자, 현재 Nix 세대 보호, 일시적 실패는 재시도하고 사용할 수 없는 도구는 건너뛰는 오류 분류가 있습니다.
사용법은 두 가지 명령을 중심으로 합니다: 정리를 위한 `clean-wizard clean`과 아무것도 삭제하지 않고 회수 가능한 공간을 보고하는 `clean-wizard scan`입니다. 플래그는 모드 선택, 설정 경로와 프로필, 드라이런, JSON 출력, 상세 로깅, 프롬프트 건너뛰기, 재시도 횟수와 프로필, 동시성 제한을 다룹니다. 설정은 일반적으로 ~/.config/clean-wizard/config.yaml에 있는 YAML 파일에서 로드되며, 사용자 정의 프리셋, Nix 세대 보존, Docker 타임아웃과 볼륨 포함, 임시 파일 나이 및 제외 규칙을 허용합니다.
이 프로젝트는 Go로 작성되었으며 빌드 시 GOEXPERIMENT=jsonv2가 필요하거나 이를 자동으로 설정하는 Nix devShell이 필요합니다. 아키텍처는 캐시 유형에 대한 타입 안전 열거형, 스레드 안전 클리너 레지스트리, samber/do v2를 통한 의존성 주입, 병렬 실행과 재시도를 갖춘 Azure/go-workflow 기반 워크플로 엔진, Result[T] 함수형 오류 처리 타입, 재시도와 종료 코드 결정을 주도하는 오류 분류를 사용합니다. README에는 이 프로젝트가 단위, 통합, BDD(Ginkgo), 벤치마크, 퍼즈 테스트에 걸친 300개 이상의 테스트를 보유하고 있다고 명시되어 있습니다.
Clean Wizard는 POSIX 셸 스크립트인 SystemNix의 후속으로 제시되며, 드라이런, 대화형 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.