[homebrew] Modify the version string when updating the version
This is a follow-up to a96b4f6 which changed the script but introduced
the bug that it no longer updated the version string in the formula.
Fixes https://github.com/dart-lang/sdk/issues/40990.
Change-Id: I272d21d2c4a44161f697ba52da6bb74b1cc7c5f9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/142147
Reviewed-by: William Hesse <whesse@google.com>
This commit is contained in:
@@ -27,19 +27,28 @@ Future<String> _getHash256(
|
||||
|
||||
Future<void> _updateFormula(String channel, File file, String version,
|
||||
Map<String, String> hashes) async {
|
||||
var contents = await file.readAsString();
|
||||
|
||||
// Replace the version identifier. Formulas with stable and pre-release
|
||||
// versions have multiple identifiers and only the right one should be
|
||||
// updated.
|
||||
var versionId = channel == 'stable'
|
||||
? RegExp(r'version \"\d+\.\d+.\d+\"')
|
||||
: RegExp(r'version \"\d+\.\d+.\d+\-.+\"');
|
||||
contents = contents.replaceAll(versionId, 'version "$version"');
|
||||
|
||||
// Extract files and hashes that are stored in the formula in this format:
|
||||
// url "<url base>/<channel>/release/<version>/sdk/<artifact>.zip"
|
||||
// sha256 "<hash>"
|
||||
var filesAndHashes = RegExp(
|
||||
'channels/$channel/release' +
|
||||
r'/(\d[\w\d\-\.]*)/sdk/([\w\d\-\.]+)\"\n(\s+)sha256 \"[\da-f]+\"',
|
||||
'channels/$channel/release'
|
||||
r'/(\d[\w\d\-\.]*)/sdk/([\w\d\-\.]+)\"\n(\s+)sha256 \"[\da-f]+\"',
|
||||
multiLine: true);
|
||||
var contents = await file.readAsString();
|
||||
contents = contents.replaceAllMapped(filesAndHashes, (m) {
|
||||
var currentVersion = m.group(1);
|
||||
if (currentVersion == version) {
|
||||
throw new ArgumentError(
|
||||
"Channel $channel is already at version $version in homebrew.");
|
||||
'Channel $channel is already at version $version in homebrew.');
|
||||
}
|
||||
var artifact = m.group(2);
|
||||
var indent = m.group(3);
|
||||
|
||||
Reference in New Issue
Block a user