Files
Gradle-mirror/README.fa.md

2.9 KiB
Raw Permalink Blame History

gradle-mirror

gradle-mirror یک ابزار خط فرمان (CLI) با پایتون است که با ویرایش فایل سراسری Gradle (init.gradle.kts) آینه‌های مخزن (mirror repositories) را فعال یا غیرفعال می‌کند.

قابلیت‌ها

  • فعال‌سازی آینه‌ها با درج یک بلاک مدیریت‌شده داخل init.gradle.kts
  • غیرفعال‌سازی با بازیابی فایل پشتیبان یا حذف بلاک بین markerها
  • رفتار idempotent (اجرای چندباره active باعث تکرار بلاک نمی‌شود)
  • خروجی رنگی در CLI
  • لاگ‌گیری از عملیات
  • سازگار با Linux، macOS و Windows

ساختار پروژه

gradle_mirror/
  __init__.py
  init.py
  cli.py
  mirror_manager.py
  gradle_locator.py
  constants.py
  utils.py
  main.py
pyproject.toml
README.md
README.fa.md

پیش‌نیازها

  • Python 3.10 یا بالاتر
  • pip

نصب

روش 1 (پیشنهادی): نصب به‌صورت ابزار CLI

در ریشه پروژه اجرا کنید:

python -m pip install .

بعد از نصب:

gradle-mirror --help

روش 2: اجرا بدون نصب

python -m gradle_mirror.main --help

استفاده

فعال‌سازی آینه‌ها

gradle-mirror active

نمونه خروجی:

✅ Gradle mirror activated
📁 Updated /Users/you/.gradle/init.gradle.kts

غیرفعال‌سازی آینه‌ها

gradle-mirror deactive

نحوه کار ابزار

  • مسیر Gradle User Home به این ترتیب تشخیص داده می‌شود:
    1. اگر متغیر محیطی GRADLE_USER_HOME تنظیم شده باشد، همان استفاده می‌شود.
    2. در غیر این صورت، مسیر پیش‌فرض ~/.gradle استفاده می‌شود.
  • فایل هدف: <gradle_home>/init.gradle.kts
  • markerهای بلاک مدیریت‌شده:
    • /* gradle-mirror-start */
    • /* gradle-mirror-end */
  • فایل پشتیبان: init.gradle.kts.bak
  • فایل لاگ: gradle-mirror.log

نکات مهم

  • فرمان active اگر markerها از قبل موجود باشند، محتوای بین آن‌ها را جایگزین می‌کند (بدون تکرار).
  • فرمان deactive ابتدا تلاش می‌کند از فایل پشتیبان بازیابی کند.
  • اگر بعد از حذف بلاک، فایل init.gradle.kts خالی شود، فایل حذف می‌شود.

عیب‌یابی سریع

  • اگر خطای No module named typer گرفتید:
python -m pip install .

یا:

python -m pip install typer
  • برای بررسی لاگ‌ها، فایل زیر را ببینید:
~/.gradle/gradle-mirror.log

(اگر GRADLE_USER_HOME تنظیم شده باشد، لاگ داخل همان مسیر ساخته می‌شود.)