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

Side by Side Diff: utils/pub/sdk_source.dart

Issue 12790006: Remove support for SDK dependencies. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 9 months 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | utils/pub/system_cache.dart » ('j') | utils/pub/validator/dependency.dart » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file.
4
5 library sdk_source;
6
7 import 'dart:async';
8
9 import '../../pkg/pathos/lib/path.dart' as path;
10
11 import 'io.dart';
12 import 'package.dart';
13 import 'pubspec.dart';
14 import 'sdk.dart' as sdk;
15 import 'source.dart';
16 import 'utils.dart';
17 import 'version.dart';
18
19 /// A package source that uses libraries from the Dart SDK.
20 class SdkSource extends Source {
21 final String name = "sdk";
22 final bool shouldCache = false;
23
24 /// SDK packages are not individually versioned. Instead, their version is
25 /// inferred from the revision number of the SDK itself.
26 Future<Pubspec> describe(PackageId id) {
27 return defer(() {
28 var packageDir = _getPackagePath(id);
29 // TODO(rnystrom): What if packageDir is null?
30 var pubspec = new Pubspec.load(id.name, packageDir, systemCache.sources);
31 // Ignore the pubspec's version, and use the SDK's.
32 return new Pubspec(id.name, sdk.version, pubspec.dependencies,
33 pubspec.devDependencies, pubspec.environment);
34 });
35 }
36
37 /// Since all the SDK files are already available locally, installation just
38 /// involves symlinking the SDK library into the packages directory.
39 Future<bool> install(PackageId id, String destPath) {
40 return defer(() {
41 var path = _getPackagePath(id);
42 if (path == null) return false;
43
44 return createPackageSymlink(id.name, path, destPath).then((_) => true);
45 });
46 }
47
48 /// Gets the path in the SDK's "pkg" directory to the directory containing
49 /// package [id]. Returns `null` if the package could not be found.
50 String _getPackagePath(PackageId id) {
51 var pkgPath = path.join(sdk.rootDirectory, "pkg", id.description);
52 return dirExists(pkgPath) ? pkgPath : null;
53 }
54 }
OLDNEW
« no previous file with comments | « no previous file | utils/pub/system_cache.dart » ('j') | utils/pub/validator/dependency.dart » ('J')

Powered by Google App Engine
This is Rietveld 408576698