Future main()

in tool/pub_upgrade.dart [19:52]


Future<void> main() async {
  final results = <String, int>{};

  Future<void> doWork(Directory directory) async {
    for (var entry in directory.listSync()) {
      if (entry is File) {
        if (entry.path.endsWith('/pubspec.yaml')) {
          final parent = entry.parent.path;

          var exit = await _dartPub(parent);

          if (exit == 69) {
            exit = await _dartPub(parent, exe: 'flutter');
          }

          results[parent] = exit;
          break;
        }
      } else if (entry is Directory) {
        if (!entry.uri.pathSegments
            .where((element) => element.isNotEmpty)
            .last
            .startsWith('.')) {
          await doWork(entry);
        }
      }
    }
  }

  await doWork(Directory.current);

  print('Results:');
  print(results.entries.map((e) => '${e.key} - ${e.value}').join('\n'));
}