installPackages method

Future<bool> installPackages(
  1. List<String> packages
)

Implementation

Future<bool> installPackages(List<String> packages) async {
  if (packages.isEmpty) {
    _cliHelper.printWarning('No packages to install.');
    return true;
  }

  try {
    final shell = Shell();
    var successCount = 0;

    for (var i = 0; i < packages.length; i++) {
      final package = packages[i];
      _cliHelper.printInfo(
        '  [${i + 1}/${packages.length}] Installing $package...',
      );

      try {
        await shell.run('flutter pub add $package');
        successCount++;
        _cliHelper.printSuccess('      ✓ $package installed successfully');
      } catch (e) {
        _cliHelper.printError('      ✗ Failed to install $package: $e');
      }
    }

    _cliHelper.printInfo(
      '\n  Summary: $successCount/${packages.length} packages installed',
    );
    return successCount == packages.length;
  } catch (e) {
    _cliHelper.printError('Error executing commands: $e');
    return false;
  }
}