| Index: utils/pub/sdk_source.dart
|
| diff --git a/utils/pub/sdk_source.dart b/utils/pub/sdk_source.dart
|
| index 13ffa2525e91176f6d3cc1742c8f9593fff10879..7129a7b45bc420f924b23fd04dd983162f3654a5 100644
|
| --- a/utils/pub/sdk_source.dart
|
| +++ b/utils/pub/sdk_source.dart
|
| @@ -8,6 +8,7 @@ import 'dart:async';
|
| import 'io.dart';
|
| import 'package.dart';
|
| import 'pubspec.dart';
|
| +import 'sdk.dart' as sdk;
|
| import 'source.dart';
|
| import 'version.dart';
|
|
|
| @@ -16,31 +17,15 @@ class SdkSource extends Source {
|
| final String name = "sdk";
|
| final bool shouldCache = false;
|
|
|
| - /// The root directory of the Dart SDK.
|
| - final String _rootDir;
|
| -
|
| - String get rootDir {
|
| - if (_rootDir != null) return _rootDir;
|
| - throw "Pub can't find the Dart SDK. Please set the DART_SDK environment "
|
| - "variable to the Dart SDK directory.";
|
| - }
|
| -
|
| - SdkSource(this._rootDir);
|
| -
|
| /// SDK packages are not individually versioned. Instead, their version is
|
| /// inferred from the revision number of the SDK itself.
|
| Future<Pubspec> describe(PackageId id) {
|
| - var version;
|
| - return readTextFile(join(rootDir, "revision")).then((revision) {
|
| - version = new Version.parse("0.0.0-r.${revision.trim()}");
|
| - // Read the pubspec for the package's dependencies.
|
| - return _getPackagePath(id);
|
| - }).then((packageDir) {
|
| + return _getPackagePath(id).then((packageDir) {
|
| // TODO(rnystrom): What if packageDir is null?
|
| return Package.load(id.name, packageDir, systemCache.sources);
|
| }).then((package) {
|
| // Ignore the pubspec's version, and use the SDK's.
|
| - return new Pubspec(id.name, version, package.pubspec.dependencies);
|
| + return new Pubspec(id.name, sdk.version, package.pubspec.dependencies);
|
| });
|
| }
|
|
|
| @@ -55,20 +40,10 @@ class SdkSource extends Source {
|
| });
|
| }
|
|
|
| - /// Gets the path in the SDK to the directory containing package [id]. Looks
|
| - /// inside both "pkg" and "lib" in the SDK. Returns `null` if the package
|
| - /// could not be found.
|
| + /// Gets the path in the SDK's "pkg" directory to the directory containing
|
| + /// package [id]. Returns `null` if the package could not be found.
|
| Future<String> _getPackagePath(PackageId id) {
|
| - // Look in "pkg" first.
|
| - var pkgPath = join(rootDir, "pkg", id.description);
|
| - return exists(pkgPath).then((found) {
|
| - if (found) return new Future<String>.immediate(pkgPath);
|
| -
|
| - // Not in "pkg", so try "lib".
|
| - // TODO(rnystrom): Get rid of this when all SDK packages are moved from
|
| - // "lib" to "pkg".
|
| - var libPath = join(rootDir, "lib", id.description);
|
| - return exists(libPath).then((found) => found ? libPath : null);
|
| - });
|
| + var pkgPath = join(sdk.rootDirectory, "pkg", id.description);
|
| + return dirExists(pkgPath).then((found) => found ? pkgPath : null);
|
| }
|
| }
|
|
|