in src/get-dart/sdk_builds.dart/lib/src/version_info.dart [15:48]
static VersionInfo parse(
String channel, String revisionPath, Map<String, dynamic> json) {
// Date parse magic
var dateJson = json['date'] as String;
DateTime date;
try {
date = DateTime.parse(dateJson);
} on FormatException {
// dealing with weird format: 201401150424
dateJson = '${dateJson.substring(0, 8)}T${dateJson.substring(8, 12)}Z';
date = DateTime.parse(dateJson);
}
// Version logic
var jsonVersion = json['version'] as String;
final oldMatch = _oldRevisionPostfix.firstMatch(jsonVersion);
if (oldMatch != null) {
jsonVersion = '${oldMatch[1]}-rev.${oldMatch[2]}.${oldMatch[3]}';
}
final version = Version.parse(jsonVersion);
final revision = json['revision'] as String;
final svnRevision = int.tryParse(revision);
if (svnRevision == null) {
// assume git!
assert(revision.length == 40);
return GitVersionInfo(version, date, channel, revisionPath, revision);
}
return SvnVersionInfo(version, date, channel, revisionPath, svnRevision);
}