a96b4f6dfe
This changes to the homebrew tooling to modify instead of replace the formulas. The formulas can now be changed by editing them in the dart-lang/homebrew-dart repo, rather than in the release tooling. Also adds a dry-run mode for local testing. https://github.com/dart-lang/sdk/issues/40990 Change-Id: Ibed90894800e4d84fac3c4558e6f08d629baed62 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/141244 Reviewed-by: William Hesse <whesse@google.com>
39 lines
1.1 KiB
Dart
39 lines
1.1 KiB
Dart
import 'dart:async';
|
|
import 'dart:convert';
|
|
import 'dart:io';
|
|
|
|
import 'package:_discoveryapis_commons/_discoveryapis_commons.dart';
|
|
import 'package:googleapis/storage/v1.dart' as storage;
|
|
import 'package:http/http.dart' as http;
|
|
import 'package:path/path.dart' as p;
|
|
|
|
part 'src/impl.dart';
|
|
|
|
const githubRepo = 'dart-lang/homebrew-dart';
|
|
|
|
const formulaByChannel = {
|
|
'beta': 'dart-beta.rb',
|
|
'dev': 'dart.rb',
|
|
'stable': 'dart.rb'
|
|
};
|
|
|
|
Iterable<String> get supportedChannels => formulaByChannel.keys;
|
|
|
|
Future<void> writeHomebrewInfo(
|
|
String channel, String version, String repository) async {
|
|
var formula = File(p.join(repository, formulaByChannel[channel]));
|
|
var hashes = await _getHashes(channel, version);
|
|
await _updateFormula(channel, formula, version, hashes);
|
|
}
|
|
|
|
Future<void> runGit(List<String> args, String repository,
|
|
Map<String, String> gitEnvironment) async {
|
|
print("git ${args.join(' ')}");
|
|
|
|
var result = await Process.run('git', args,
|
|
workingDirectory: repository, environment: gitEnvironment);
|
|
|
|
print(result.stdout);
|
|
print(result.stderr);
|
|
}
|