initializeAddPackages function
Future<void>
initializeAddPackages(
{ - 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}");
}
}
}