Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Unified Diff: pkg/code_transformers/lib/src/dart_sdk.dart

Issue 795433002: Fix code_transformers to consider dart symlinks (typical in brew installations) (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/code_transformers/CHANGELOG.md ('k') | pkg/code_transformers/pubspec.yaml » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/code_transformers/lib/src/dart_sdk.dart
diff --git a/pkg/code_transformers/lib/src/dart_sdk.dart b/pkg/code_transformers/lib/src/dart_sdk.dart
index 5dfcab848905e2668c682aa32832a07eab6477ae..77dd04c51db70da9921114c01ab52d8c146ba16d 100644
--- a/pkg/code_transformers/lib/src/dart_sdk.dart
+++ b/pkg/code_transformers/lib/src/dart_sdk.dart
@@ -23,18 +23,24 @@ String get dartSdkDirectory {
bool isSdkDir(String dirname) =>
new File(path.join(dirname, 'lib', '_internal', 'libraries.dart'))
- .existsSync();
+ .existsSync();
- if (path.split(Platform.executable).length == 1) {
+ String executable = Platform.executable;
+ if (path.split(executable).length == 1) {
// TODO(blois): make this cross-platform.
// HACK: A single part, hope it's on the path.
- var result = Process.runSync('which', ['dart'],
- stdoutEncoding: convert.UTF8);
-
- var sdkDir = path.dirname(path.dirname(result.stdout));
+ executable = Process.runSync('which', ['dart'],
+ stdoutEncoding: convert.UTF8).stdout.trim();
+ // In case Dart is symlinked (e.g. homebrew on Mac) follow symbolic links.
+ var link = new Link(executable);
+ if (link.existsSync()) {
+ executable = link.resolveSymbolicLinksSync();
+ }
+ var sdkDir = path.dirname(path.dirname(executable));
if (isSdkDir(sdkDir)) return sdkDir;
}
- var dartDir = path.dirname(path.absolute(Platform.executable));
+
+ var dartDir = path.dirname(path.absolute(executable));
// If there's a sub-dir named dart-sdk then we're most likely executing from
// a dart enlistment build directory.
if (isSdkDir(path.join(dartDir, 'dart-sdk'))) {
« no previous file with comments | « pkg/code_transformers/CHANGELOG.md ('k') | pkg/code_transformers/pubspec.yaml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698