blob: 52c2aec31554d8c26d0a661f7fbde381be474c2b [file] [log] [blame]
// Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
part of '../update_homebrew.dart';
const _files = [
'dartsdk-macos-arm64-release.zip',
'dartsdk-macos-x64-release.zip',
'dartsdk-linux-x64-release.zip',
'dartsdk-linux-arm64-release.zip',
'dartsdk-linux-ia32-release.zip',
'dartsdk-linux-arm-release.zip',
];
Future<String> _getHash256(
String channel, String version, String download) async {
var client = http.Client();
try {
var api = storage.StorageApi(client);
var url = 'channels/$channel/release/$version/sdk/$download.sha256sum';
var media = await api.objects.get('dart-archive', url,
downloadOptions: DownloadOptions.fullMedia) as Media;
var hashLine = await ascii.decodeStream(media.stream);
return RegExp('[0-9a-fA-F]*').stringMatch(hashLine)!;
} finally {
client.close();
}
}
Future<Map<String, String>> _getHashes(String channel, String version) async {
return <String, String>{
for (var file in _files) file: await _getHash256(channel, version, file)
};
}