update_homebrew🎯 also make a dart@2, for Dart 2 migration
This PR modifies update_homebrew to also generate a dart@2 versioned formula. The new file is dropped out right next to the old `dart.rb` file. The dart@2 formula is a temporary measure to aid application developers migrating from Dart 1 to Dart 2. Supersedes https://github.com/dart-lang/homebrew-dart/pull/52. This looks right by inspection, but I haven't been able to test it yet: my local `dart` environment is all messed up, and I am a Dart newbie. Still, I'm putting this out here as a PR so the discussion from https://github.com/dart-lang/homebrew-dart/pull/52 can proceed. Closes #33318 https://github.com/dart-lang/sdk/pull/33318 GitOrigin-RevId: 5230782aabf4f45199cff9b1fb9c5304e5dcb21c Change-Id: I78cf5b066d85ac8b0ef51ed44e6eb1a15192b23c Reviewed-on: https://dart-review.googlesource.com/58120 Commit-Queue: William Hesse <whesse@google.com> Reviewed-by: William Hesse <whesse@google.com>
This commit is contained in:
committed by
commit-bot@chromium.org
parent
656ed8491e
commit
61e57e2012
@@ -23,6 +23,7 @@ const dartiumFile = 'dartium/dartium-macos-x64-release.zip';
|
||||
const contentShellFile = 'dartium/content_shell-macos-x64-release.zip';
|
||||
|
||||
const dartRbFileName = 'dart.rb';
|
||||
const dart2RbFileName = 'dart@2.rb';
|
||||
|
||||
Future<String> getHash256(
|
||||
String channel, String revision, String download) async {
|
||||
@@ -107,6 +108,9 @@ Future writeHomebrewInfo(
|
||||
await new File(p.join(repository, dartRbFileName)).writeAsString(
|
||||
createDartFormula(revisions, hashes, devVersion, stableVersion),
|
||||
flush: true);
|
||||
await new File(p.join(repository, dart2RbFileName)).writeAsString(
|
||||
createDart2Formula(revisions, hashes, devVersion, stableVersion),
|
||||
flush: true);
|
||||
}
|
||||
|
||||
String createDartFormula(
|
||||
@@ -200,6 +204,61 @@ class Dart < Formula
|
||||
end
|
||||
''';
|
||||
|
||||
/// TODO: Remove this formula after Dart 2 is released as stable.
|
||||
/// This is a transitional mechanism to support developers migrating
|
||||
/// from Dart 1 to Dart 2 while it's in pre-release.
|
||||
String createDart2Formula(
|
||||
Map revisions, Map hashes, String devVersion, String stableVersion) =>
|
||||
'''
|
||||
class DartAT2 < Formula
|
||||
desc "The Dart 2 SDK"
|
||||
homepage "https://www.dartlang.org/"
|
||||
version "$devVersion"
|
||||
|
||||
keg_only :versioned_formula
|
||||
|
||||
if MacOS.prefer_64_bit?
|
||||
url "$urlBase/dev/release/${revisions['dev']}/$x64File"
|
||||
sha256 "${hashes['dev'][x64File]}"
|
||||
else
|
||||
url "$urlBase/dev/release/${revisions['dev']}/$ia32File"
|
||||
sha256 "${hashes['dev'][ia32File]}"
|
||||
end
|
||||
|
||||
def install
|
||||
libexec.install Dir["*"]
|
||||
bin.install_symlink "#{libexec}/bin/dart"
|
||||
bin.write_exec_script Dir["#{libexec}/bin/{pub,dart?*}"]
|
||||
end
|
||||
|
||||
def shim_script(target)
|
||||
<<~EOS
|
||||
#!/usr/bin/env bash
|
||||
exec "#{prefix}/#{target}" "$@"
|
||||
EOS
|
||||
end
|
||||
|
||||
def caveats; <<~EOS
|
||||
Note that this is a prerelease version of Dart.
|
||||
|
||||
Please note the path to the Dart SDK:
|
||||
#{opt_libexec}
|
||||
EOS
|
||||
end
|
||||
|
||||
test do
|
||||
(testpath/"sample.dart").write <<~EOS
|
||||
void main() {
|
||||
print(r"test message");
|
||||
}
|
||||
EOS
|
||||
|
||||
assert_equal "test message\n", shell_output("#{bin}/dart sample.dart")
|
||||
end
|
||||
end
|
||||
''';
|
||||
|
||||
|
||||
Future runGit(List<String> args, String repository,
|
||||
Map<String, String> gitEnvironment) async {
|
||||
print("git ${args.join(' ')}");
|
||||
|
||||
Reference in New Issue
Block a user