منصوبے کے بارے میں

Clean Wizard macOS اور Linux ڈیولپمنٹ مشینوں پر ڈسک اسپیس خالی کرنے کے لیے ایک کمانڈ لائن یوٹیلیٹی ہے۔ یہ 13 خصوصی کلینرز کو یکجا کرتا ہے جو پرانے ڈیٹا کو نشانہ بناتے ہیں، جیسے پرانی Nix generations، Homebrew ڈاؤن لوڈز، Docker images اور volumes، Cargo اور Go کیشز، npm/pnpm/yarn/bun کیشز، Gradle/Maven/SBT artifacts، Xcode DerivedData، CocoaPods، pip اور ccache، ٹیمپ فائلیں، پرانی کمپائل شدہ بائنریز، بڑے git blobs اور golangci-lint کیشز۔ ہر کلینر یہ پتہ لگاتا ہے کہ اس کا ہدف ٹول انسٹال ہے یا نہیں اور دستیاب نہ ہونے والوں کو ناکام ہونے کے بجائے چھوڑ دیتا ہے۔ تین پریسیٹ موڈز فراہم کیے گئے ہیں: quick (ایک محفوظ ذیلی مجموعہ)، standard (تمام دستیاب کلینرز) اور aggressive (سسٹم کیشز اور مکمل Docker volumes شامل ہیں)۔ حفاظتی خصوصیات میں dry-run موڈ شامل ہے جو فائل سسٹم کو چھوئے بغیر اقدامات کا پیش نظارہ کرتا ہے، حذف کرنے سے پہلے تصدیقی ڈائیلاگز، موجودہ Nix generation کا تحفظ، اور خرابی کی درجہ بندی جو عارضی ناکامیوں کو دوبارہ کوشش کرتی ہے جبکہ دستیاب نہ ہونے والے ٹولز کو چھوڑ دیتی ہے۔ استعمال دو کمانڈز پر مرکوز ہے: صفائی کے لیے `clean-wizard clean` اور کچھ حذف کیے بغیر دوبارہ حاصل ہونے والی جگہ کی رپورٹ کے لیے `clean-wizard scan`۔ فلیگز میں موڈ کا انتخاب، کنفیگ پاتھ اور پروفائل، dry-run، JSON آؤٹ پٹ، verbose logging، پرامپٹ چھوڑنا، دوبارہ کوشش کی تعداد اور پروفائل، اور concurrency کی حدیں شامل ہیں۔ کنفیگریشن ایک YAML فائل سے لوڈ ہوتی ہے، عام طور پر ~/.config/clean-wizard/config.yaml پر، جو حسب ضرورت پریسیٹس، Nix generation برقرار رکھنے، Docker ٹائم آؤٹ اور volume شمولیت، اور ٹیمپ فائل کی عمر اور اخراج کے قواعد کی اجازت دیتی ہے۔ یہ پروجیکٹ Go میں لکھا گیا ہے اور بلڈ کرتے وقت GOEXPERIMENT=jsonv2 کی ضرورت ہوتی ہے، یا ایک Nix devShell جو اسے خودکار طور پر سیٹ کرتا ہے۔ اس کا آرکیٹیکچر کیش اقسام کے لیے type-safe enums، ایک thread-safe کلینر رجسٹری، samber/do v2 کے ذریعے dependency injection، Azure/go-workflow پر مبنی ایک ورک فلو انجن جس میں متوازی عملدرآمد اور دوبارہ کوشش شامل ہے، ایک Result[T] فنکشنل ایرر ہینڈلنگ ٹائپ، اور خرابی کی درجہ بندی جو دوبارہ کوشش اور exit-code کے فیصلوں کو چلاتی ہے، استعمال کرتا ہے۔ README میں بتایا گیا ہے کہ پروجیکٹ میں 300+ ٹیسٹس ہیں جو unit، integration، BDD (Ginkgo)، benchmarks اور fuzz testing پر محیط ہیں۔ Clean Wizard کو SystemNix کا جانشین پیش کیا گیا ہے، جو ایک POSIX shell اسکرپٹ ہے، جس میں dry-run، ایک انٹرایکٹو TUI، JSON آؤٹ پٹ، YAML پروفائلز اور درجہ بند ایرر ہینڈلنگ شامل کی گئی ہے۔ یہ MIT لائسنس یافتہ ہے، اور دستاویزات cleanwizard.lars.software پر میزبانی کی جاتی ہیں۔