readFlutterEngineRevision function

Future<String?> readFlutterEngineRevision({
  1. Future<ProcessResult> runProcess(
    1. String,
    2. List<String>
    )?,
})

Reads Flutter engine revision from flutter --version --machine.

Implementation

Future<String?> readFlutterEngineRevision({
  Future<ProcessResult> Function(String, List<String>)? runProcess,
}) async {
  final runner = runProcess ?? Process.run;
  try {
    final result = await runner('flutter', ['--version', '--machine']);
    if (result.exitCode != 0) return null;
    final json = jsonDecode(result.stdout.toString()) as Map<String, dynamic>;
    final rev = json['engineRevision'] as String?;
    return rev;
  } catch (_) {
    return null;
  }
}