#!/usr/bin/env bash # مزامنة الكود المشترك من rider_new إلى driver_new. # # التطبيقان توأمان في البنية ومختلفان في الميزات (docs/23 §0.1)، ولا حزمة # مشتركة بينهما لأن docs/23 §1 و docs/26 §10 يفرضان core/ داخل كل تطبيق. # البديل الوحيد إذن مزامنة منضبطة — وهذا الملف هو تعريفها الوحيد. # # التشغيل: bash tool/sync_from_rider.sh set -euo pipefail cd "$(dirname "$0")/.." # ملفات يملكها السائق ولا تُنسخ من الراكب أبداً OWN=( "core/config.dart" # appRole = driver "core/build_config.dart" # اسم التطبيق + روابط الطرف الآخر "core/di.dart" # DutyCubit + OnboardingCubit + PayoutCubit "core/router.dart" # DutyPage + EarningsPage + بوابة التسجيل "core/l10n/gen" "features/onboarding" # تسجيل السائق — لا مقابل له عند الراكب "features/trip/cubit/duty_cubit.dart" "features/trip/cubit/duty_state.dart" "features/trip/view/duty_page.dart" "features/trip/view/widgets/duty_toggle.dart" "features/trip/view/widgets/offer_sheet.dart" "features/trip/view/widgets/active_duty_sheet.dart" "features/wallet/cubit/payout_cubit.dart" "features/wallet/view/earnings_page.dart" "features/wallet/view/widgets/payout_sheet.dart" ) # ملفات تخصّ الراكب ولا مكان لها عند السائق RIDER_ONLY=( "features/trip/cubit/ride_cubit.dart" "features/trip/cubit/ride_state.dart" "features/trip/view/ride_page.dart" "features/trip/view/widgets/planner_sheet.dart" "features/trip/view/widgets/confirm_sheet.dart" "features/trip/view/widgets/searching_sheet.dart" "features/trip/view/widgets/route_timeline.dart" "features/trip/view/widgets/ride_type_picker.dart" "features/trip/view/widgets/center_pin.dart" "features/trip/view/widgets/active_trip_sheet.dart" "features/trip/view/widgets/cancel_sheet.dart" "features/wallet/view/wallet_page.dart" ) args=() for p in "${OWN[@]}" "${RIDER_ONLY[@]}"; do args+=(--exclude "$p"); done rsync -a "${args[@]}" ../rider_new/lib/ lib/ # ملفّا ARB **يُنسخان** من الراكب كي تصل المفاتيح المشتركة الجديدة، ثم # يُعاد فرض نصوص السائق فوقهما. استثناؤهما من النسخ كان يُسقط كل مفتاح # مشترك جديد ويكسر البناء — تكرّر ثلاث مرات قبل هذا التصحيح. python3 tool/driver_l10n_extra.py echo "✅ تمّت المزامنة — شغّل: flutter gen-l10n && flutter analyze"