2026-05-06 22:14:38 +03:30
2026-05-06 22:14:38 +03:30
2026-05-06 22:14:38 +03:30
2026-04-27 04:31:32 +03:30
2026-05-06 22:14:38 +03:30
2026-04-27 04:31:32 +03:30
2026-04-27 04:31:32 +03:30
2026-04-27 04:31:32 +03:30
2026-04-27 04:31:32 +03:30
2026-04-27 04:31:32 +03:30
2026-04-27 04:31:32 +03:30
2026-04-27 04:31:32 +03:30

اسکریپت‌های مدیریت ماژول‌ها

این ریپو چند اسکریپت کمکی برای مدیریت ماژول‌ها، ساب‌ماژول Schemas و اجرای Docker دارد. در این فایل، کاربرد هر اسکریپت و نحوه استفاده از آن به فارسی توضیح داده شده است.

1) افزودن همه ماژول‌ها به‌صورت submodule

فایل:

./add_submodules.sh

کار این اسکریپت:

  • ماژول‌های Ai، SensorHub، Backend، Accsess و Schemas را به‌صورت submodule اضافه می‌کند
  • branch پیش‌فرض روی develop است
  • اگر submodule از قبل ثبت شده باشد، همان ماژول را skip می‌کند

استفاده:

./add_submodules.sh

اگر می‌خواهید git submodule add با --force اجرا شود:

./add_submodules.sh --force

2) افزودن Schemas به پروژه‌ها

فایل:

./add_schemas_submodule.sh

کار این اسکریپت:

  • ساب‌ماژول Schemas را داخل پروژه‌های Ai، Backend و SensorHub اضافه می‌کند
  • اگر Schemas از قبل اضافه شده باشد، آن پروژه را رد می‌کند
  • اگر پوشه Schemas از قبل وجود داشته باشد، چیزی را overwrite نمی‌کند

استفاده:

./add_schemas_submodule.sh

اگر می‌خواهید git submodule add با --force اجرا شود:

./add_schemas_submodule.sh --force

فقط برای بعضی پروژه‌ها:

./add_schemas_submodule.sh Ai Backend

ترکیب با --force:

./add_schemas_submodule.sh --force Ai Backend

اگر آدرس ریپوی Schemas تغییر کرد:

SCHEMAS_REPO_URL="ssh://git@host:port/path/Schemas.git" ./add_schemas_submodule.sh

3) pull گرفتن از Schemas داخل پروژه‌ها

فایل:

./pull_schemas_submodule.sh

کار این اسکریپت:

  • داخل Ai، Backend و SensorHub می‌رود
  • اگر Schemas به‌عنوان submodule وجود داشته باشد، روی آن git pull --ff-only اجرا می‌کند
  • اگر submodule هنوز initialize نشده باشد، آن پروژه را رد می‌کند

استفاده:

./pull_schemas_submodule.sh

فقط برای بعضی پروژه‌ها:

./pull_schemas_submodule.sh Ai SensorHub

4) pull گرفتن از همه ماژول‌ها

فایل:

./pull_all_modules.sh

کار این اسکریپت:

  • روی ماژول‌های اصلی Accsess، Ai، Backend، Schemas و SensorHub دستور git pull --ff-only اجرا می‌کند
  • اگر داخل هر ماژول submodule وجود داشته باشد:
    • ابتدا submodule update --init --recursive اجرا می‌کند
    • سپس روی submoduleهای داخلی هم git pull --ff-only اجرا می‌کند

استفاده:

./pull_all_modules.sh

فقط برای چند ماژول مشخص:

./pull_all_modules.sh Ai Backend

5) اجرای Docker برای ماژول‌ها

فایل:

./run_docker_modules.sh

کار این اسکریپت:

  • همه پوشه‌های داخل ریشه پروژه را بررسی می‌کند
  • هر پوشه‌ای که فایل Docker Compose داشته باشد اجرا می‌شود
  • این فایل‌ها پشتیبانی می‌شوند:
    • docker-compose.yaml
    • docker-compose.yml
    • compose.yaml
    • compose.yml
  • اجرای پیش‌فرض به شکل detached است:
    • docker compose up -d

استفاده:

./run_docker_modules.sh

فقط برای چند ماژول مشخص:

./run_docker_modules.sh Ai Backend

اجرای Docker با build

اگر بخواهید قبل از اجرا build هم انجام شود، از فلگ --build استفاده کنید:

./run_docker_modules.sh --build

برای چند ماژول مشخص همراه با build:

./run_docker_modules.sh --build Ai SensorHub

راهنمای اسکریپت Docker

./run_docker_modules.sh --help

6) bootstrap کامل ماژول‌ها

فایل:

./bootstrap_modules.sh

کار این اسکریپت:

  • در step 1 اسکریپت add_submodules.sh را اجرا می‌کند
  • در step 2 اسکریپت add_schemas_submodule.sh را اجرا می‌کند
  • در step 3 اسکریپت run_docker_modules.sh را اجرا می‌کند
  • می‌تواند --force را به اسکریپت‌های add و --build را به Docker پاس بدهد

استفاده:

./bootstrap_modules.sh

اجرا فقط تا step 2:

./bootstrap_modules.sh --step 2

اجرا با --force:

./bootstrap_modules.sh --force

اجرا با --force فقط تا step 2:

./bootstrap_modules.sh --force --step 2

اجرا با build برای Docker:

./bootstrap_modules.sh --build

نکات مهم

  • تمام اسکریپت‌ها طوری نوشته شده‌اند که اگر مسیر موردنظر git repo نباشد یا فایل لازم را نداشته باشد، به‌جای خطای مخرب، آن مورد را skip کنند
  • در اسکریپت‌های pull از --ff-only استفاده شده تا merge ناخواسته ایجاد نشود
  • قبل از اجرا، مطمئن شوید اسکریپت‌ها executable هستند:
chmod +x add_schemas_submodule.sh
chmod +x pull_schemas_submodule.sh
chmod +x pull_all_modules.sh
chmod +x run_docker_modules.sh
S
Description
No description provided
Readme 938 KiB
Languages
Python 98.8%
Shell 0.6%
Dockerfile 0.3%
HTML 0.2%
Open Policy Agent 0.1%