runUpgrade method

Future<PanaProcessResult> runUpgrade(
  1. String packageDir,
  2. bool usesFlutter, {
  3. int retryCount = 3,
})

Implementation

Future<PanaProcessResult> runUpgrade(
  String packageDir,
  bool usesFlutter, {
  int retryCount = 3,
}) async {
  return await _withStripAndAugmentPubspecYaml(packageDir, () async {
    final retryOptions = const RetryOptions(maxAttempts: 3);
    bool retryIf(PanaProcessResult result) {
      final errOutput = result.stderr.asString;
      // find cases where retrying is not going to help – and short-circuit
      if (errOutput.contains('Could not get versions for flutter from sdk')) {
        return false;
      }
      if (errOutput.contains('FINE: Exception type: NoVersionException')) {
        return false;
      }
      return true;
    }

    if (usesFlutter) {
      return await runConstrained(
        [
          ..._flutterSdk.flutterCmd,
          'packages',
          'pub',
          'upgrade',
          '--no-example',
          '--verbose',
        ],
        workingDirectory: packageDir,
        environment:
            usesFlutter ? _flutterSdk.environment : _dartSdk.environment,
        retryIf: retryIf,
        retryOptions: retryOptions,
      );
    } else {
      return await runConstrained(
        [
          ..._dartSdk.dartCmd,
          'pub',
          'upgrade',
          '--no-example',
          '--verbose',
        ],
        workingDirectory: packageDir,
        environment:
            usesFlutter ? _flutterSdk.environment : _dartSdk.environment,
        retryIf: retryIf,
        retryOptions: retryOptions,
      );
    }
  });
}