restore static method

bool restore()

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;
}