restore static method
Sets current Flutter version to the one saved in fvfFile.
Implementation
static bool restore() {
final File f = File(fvfFile);
if (!f.existsSync()) {
print('$fvfFile missing, cannot restore');
return false;
}
final String flutterVersion = f.readAsStringSync();
print(
'Restoring Flutter to ${flutterVersion.contains('.') ? 'version' : 'revision'} $flutterVersion ...');
final ProcessResult findResult = Process.runSync(
Platform.isWindows ? 'where' : 'which',
['flutter'],
runInShell: true,
);
if (findResult.exitCode != 0) {
print(findResult.stderr);
return false;
}
final String output = findResult.stdout;
final String flutterPath = output.substring(0, output.length - 13);
final Directory currentDirectory = Directory.current;
Directory.current = flutterPath;
final ProcessResult changeVersionResult =
Process.runSync('git', ['checkout', flutterVersion]);
if (changeVersionResult.exitCode != 0) {
print(changeVersionResult.stderr);
return false;
}
print(changeVersionResult.stdout);
final ProcessResult doctorResult = Process.runSync('flutter', ['doctor']);
if (doctorResult.exitCode != 0) {
print(doctorResult.stderr);
return false;
}
print(doctorResult.stdout);
Directory.current = currentDirectory;
return true;
}