initializeAddPackages function

Future<void> initializeAddPackages({
  1. bool updatePackages = true,
})

Implementation

Future<void> initializeAddPackages({bool updatePackages = true}) async {
  print('📦 Adding packages (resolving latest compatible versions)...');

  // ملاحظة هامة: يجب تشغيلها بالتسلسل وليس باستخدام Future.wait
  // لأن تشغيل أمري pub add في نفس الوقت سيؤدي إلى خطأ (File Lock)
  await addDependenciesEfficiently(corePackages, isDev: false);
  await addDependenciesEfficiently(devPackages, isDev: true);

  // أمر 'pub add' يقوم بعمل 'pub get' تلقائياً، لذلك قد لا تحتاج لتشغيله مرة أخرى
  // ولكن تركناه إذا كنت ترغب في التأكيد.
  if (updatePackages) {
    print("⏳ Finalizing...");
    final result = await Process.run('dart', ['pub', 'get'], runInShell: true);
    if (result.exitCode != 0) {
      print("⚠️ Warning during pub get:\n${result.stderr}");
    }
  }
}