Chromium Code Reviews| 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 |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..fe31d890ce0d1ed5d50f93a99719c88d714488f6 |
| --- /dev/null |
| +++ b/pkg/code_transformers/lib/src/dart_sdk.dart |
| @@ -0,0 +1,30 @@ |
| +// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| +// for details. All rights reserved. Use of this source code is governed by a |
| +// BSD-style license that can be found in the LICENSE file. |
| + |
| +library code_transformers.src.dart_sdk; |
| + |
| +import 'dart:convert' as convert; |
| +import 'dart:io' show Directory, Platform, Process; |
| +import 'package:path/path.dart' as path; |
| + |
| + |
| +/// Attempts to provide the current Dart SDK directory. |
| +/// |
| +/// Note that this may not be correct when executing outside of `pub`. |
| +String get dartSdkDirectory { |
| + if (path.split(Platform.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'], |
|
blois
2014/02/13 01:29:28
Still working on this- this codepath is hit when t
|
| + stdoutEncoding: convert.UTF8); |
| + return path.dirname(path.dirname(result.stdout)); |
| + } |
| + var sdkDir = path.dirname(path.absolute(Platform.executable)); |
| + // If there's a sub-dir named dart-sdk then we're most likely executing from |
| + // a dart enlistment build directory. |
| + if (new Directory(path.join(sdkDir, 'dart-sdk')).existsSync()) { |
| + return path.join(sdkDir, 'dart-sdk'); |
| + } |
| + return sdkDir; |
| +} |