প্রকল্প সম্পর্কে
Clean Wizard হলো macOS ও Linux ডেভেলপমেন্ট মেশিনে ডিস্ক স্পেস পুনরুদ্ধারের জন্য একটি কমান্ড-লাইন ইউটিলিটি। এতে ১৩টি বিশেষ ক্লিনার রয়েছে, যেগুলো পুরনো 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 জেনারেশন সুরক্ষা; এবং error classification, যা ক্ষণস্থায়ী ব্যর্থতা পুনরায় চেষ্টা করে কিন্তু অনুপলব্ধ টুল বাদ দেয়।
ব্যবহার মূলত দুটি কমান্ডকে কেন্দ্র করে: পরিষ্কারের জন্য `clean-wizard clean` এবং কিছু না মুছে পুনরুদ্ধারযোগ্য স্পেস রিপোর্ট করতে `clean-wizard scan`। ফ্ল্যাগগুলো মোড নির্বাচন, কনফিগ পাথ ও প্রোফাইল, dry-run, JSON আউটপুট, verbose লগিং, প্রম্পট এড়ানো, retry সংখ্যা ও প্রোফাইল, এবং concurrency সীমা কভার করে। কনফিগারেশন একটি YAML ফাইল থেকে লোড হয়, সাধারণত ~/.config/clean-wizard/config.yaml-এ, যা কাস্টম প্রিসেট, Nix জেনারেশন সংরক্ষণ, Docker টাইমআউট ও ভলিউম অন্তর্ভুক্তি, এবং টেম্প-ফাইলের বয়স ও বাদ দেওয়ার নিয়ম নির্ধারণ করতে দেয়।
প্রকল্পটি Go-তে লেখা এবং বিল্ড করার সময় GOEXPERIMENT=jsonv2 প্রয়োজন, অথবা একটি Nix devShell যা এটি স্বয়ংক্রিয়ভাবে সেট করে। এর আর্কিটেকচারে ক্যাশ টাইপের জন্য type-safe enum, একটি thread-safe cleaner registry, samber/do v2-এর মাধ্যমে dependency injection, Azure/go-workflow-ভিত্তিক একটি workflow engine যাতে parallel execution ও retry আছে, একটি Result[T] functional error-handling টাইপ, এবং retry ও exit-code সিদ্ধান্ত পরিচালনা করার জন্য error classification ব্যবহৃত হয়। README অনুযায়ী প্রকল্পটিতে unit, integration, BDD (Ginkgo), benchmark ও fuzz testing মিলিয়ে ৩০০+ টেস্ট রয়েছে।
Clean Wizard-কে SystemNix-এর উত্তরসূরি হিসেবে উপস্থাপন করা হয়, যা একটি POSIX shell script ছিল; এতে dry-run, একটি ইন্টারঅ্যাকটিভ TUI, JSON আউটপুট, YAML প্রোফাইল এবং শ্রেণীবদ্ধ error handling যোগ করা হয়েছে। এটি MIT লাইসেন্সের অধীনে, ডকুমেন্টেশন cleanwizard.lars.software-এ হোস্ট করা।
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.