Index: lib/cli_util.dart |
diff --git a/lib/cli_util.dart b/lib/cli_util.dart |
index 683bef7e2629ff0355df01c55f1b4acadcd13d0f..aff2c6799978a1445c485fdc512e0ae9fdfe69e4 100644 |
--- a/lib/cli_util.dart |
+++ b/lib/cli_util.dart |
@@ -6,6 +6,7 @@ library cli_util; |
import 'dart:io'; |
+import 'package:path/path.dart' as p; |
import 'package:which/which.dart'; |
/// Return the path to the current Dart SDK. This will return `null` if we are |
@@ -45,6 +46,12 @@ Directory getSdkDir([List<String> cliArgs]) { |
executable = link.resolveSymbolicLinksSync(); |
} |
+ Link parentLink = new Link(p.dirname(executable)); |
+ if (parentLink.existsSync()) { |
+ executable = p.join( |
+ parentLink.resolveSymbolicLinksSync(), p.basename(executable)); |
+ } |
+ |
File dartVm = new File(executable); |
Directory dir = dartVm.parent.parent; |
if (_isSdkDir(dir)) return dir; |