[flutter_tool] Remove some async file io (#38654)
diff --git a/packages/flutter_tools/lib/src/commands/create.dart b/packages/flutter_tools/lib/src/commands/create.dart index fa8a198..c29458a 100644 --- a/packages/flutter_tools/lib/src/commands/create.dart +++ b/packages/flutter_tools/lib/src/commands/create.dart
@@ -407,7 +407,7 @@ break; } if (sampleCode != null) { - generatedFileCount += await _applySample(relativeDir, sampleCode); + generatedFileCount += _applySample(relativeDir, sampleCode); } printStatus('Wrote $generatedFileCount files.'); printStatus('\nAll done!'); @@ -566,13 +566,13 @@ // documentation website in sampleCode. Returns the difference in the number // of files after applying the sample, since it also deletes the application's // test directory (since the template's test doesn't apply to the sample). - Future<int> _applySample(Directory directory, String sampleCode) async { + int _applySample(Directory directory, String sampleCode) { final File mainDartFile = directory.childDirectory('lib').childFile('main.dart'); - await mainDartFile.create(recursive: true); - await mainDartFile.writeAsString(sampleCode); + mainDartFile.createSync(recursive: true); + mainDartFile.writeAsStringSync(sampleCode); final Directory testDir = directory.childDirectory('test'); final List<FileSystemEntity> files = testDir.listSync(recursive: true); - await testDir.delete(recursive: true); + testDir.deleteSync(recursive: true); return -files.length; }
diff --git a/packages/flutter_tools/lib/src/commands/packages.dart b/packages/flutter_tools/lib/src/commands/packages.dart index 6078a17..510e9bf 100644 --- a/packages/flutter_tools/lib/src/commands/packages.dart +++ b/packages/flutter_tools/lib/src/commands/packages.dart
@@ -79,9 +79,9 @@ return usageValues; } final FlutterProject rootProject = FlutterProject.fromPath(target); - final bool hasPlugins = await rootProject.flutterPluginsFile.exists(); + final bool hasPlugins = rootProject.flutterPluginsFile.existsSync(); if (hasPlugins) { - final int numberOfPlugins = (await rootProject.flutterPluginsFile.readAsLines()).length; + final int numberOfPlugins = (rootProject.flutterPluginsFile.readAsLinesSync()).length; usageValues[CustomDimensions.commandPackagesNumberPlugins] = '$numberOfPlugins'; } else { usageValues[CustomDimensions.commandPackagesNumberPlugins] = '0';
diff --git a/packages/flutter_tools/lib/src/commands/screenshot.dart b/packages/flutter_tools/lib/src/commands/screenshot.dart index e98f6ed..bda6f33 100644 --- a/packages/flutter_tools/lib/src/commands/screenshot.dart +++ b/packages/flutter_tools/lib/src/commands/screenshot.dart
@@ -106,7 +106,7 @@ } catch (error) { throwToolExit('Error taking screenshot: $error'); } - await showOutputFileInfo(outputFile); + _showOutputFileInfo(outputFile); } Future<void> runSkia(File outputFile) async { @@ -115,8 +115,8 @@ final IOSink sink = outputFile.openWrite(); sink.add(base64.decode(skp['skp'])); await sink.close(); - await showOutputFileInfo(outputFile); - await _ensureOutputIsNotJsonRpcError(outputFile); + _showOutputFileInfo(outputFile); + _ensureOutputIsNotJsonRpcError(outputFile); } Future<void> runRasterizer(File outputFile) async { @@ -125,8 +125,8 @@ final IOSink sink = outputFile.openWrite(); sink.add(base64.decode(response['screenshot'])); await sink.close(); - await showOutputFileInfo(outputFile); - await _ensureOutputIsNotJsonRpcError(outputFile); + _showOutputFileInfo(outputFile); + _ensureOutputIsNotJsonRpcError(outputFile); } Future<Map<String, dynamic>> _invokeVmServiceRpc(String method) async { @@ -135,18 +135,20 @@ return await vmService.vm.invokeRpcRaw(method); } - Future<void> _ensureOutputIsNotJsonRpcError(File outputFile) async { - if (await outputFile.length() < 1000) { - final String content = await outputFile.readAsString( - encoding: const AsciiCodec(allowInvalid: true), - ); - if (content.startsWith('{"jsonrpc":"2.0", "error"')) - throwToolExit('\nIt appears the output file contains an error message, not valid skia output.'); + void _ensureOutputIsNotJsonRpcError(File outputFile) { + if (outputFile.lengthSync() >= 1000) { + return; + } + final String content = outputFile.readAsStringSync( + encoding: const AsciiCodec(allowInvalid: true), + ); + if (content.startsWith('{"jsonrpc":"2.0", "error"')) { + throwToolExit('It appears the output file contains an error message, not valid skia output.'); } } - Future<void> showOutputFileInfo(File outputFile) async { - final int sizeKB = (await outputFile.length()) ~/ 1024; + void _showOutputFileInfo(File outputFile) { + final int sizeKB = (outputFile.lengthSync()) ~/ 1024; printStatus('Screenshot written to ${fs.path.relative(outputFile.path)} (${sizeKB}kB).'); } }