fromGit static method

Future<ApiDataModel> fromGit(
  1. String baseUri,
  2. String outputDir
)

Implementation

static Future<ApiDataModel> fromGit(String baseUri, String outputDir) async {
  final result = await Process.run('git', ['--no-pager', 'tag', '-l']);
  final tags = result.stdout.toString().split('\n')..removeLast();

  Map<Version, VersionModel> versions = {};
  for (final ref in tags) {
    try {
      final version = await VersionModel.fromGit(ref, baseUri, outputDir);
      versions[Version.parse(version.version)] = version;
    } catch (e, s) {
      log('Couldn\'t build VersionModel for tag $ref:',
          error: e, stackTrace: s);
    }
  }

  final keys = versions.keys.toList();
  keys.sort();
  final latest = versions[keys.reversed.first]!;

  return ApiDataModel(
      name: latest.pubspec['name'],
      latest: latest,
      versions: versions.values.toList()..sort());
}