runUpgrade method
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,
);
}
});
}