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

Side by Side Diff: sdk/lib/_internal/pub/lib/src/entrypoint.dart

Issue 22893029: Revise output of list-package-dirs. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 4 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
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 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 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. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library pub.entrypoint; 5 library pub.entrypoint;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'package:path/path.dart' as path; 9 import 'package:path/path.dart' as path;
10 10
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 /// Loads the entrypoint from a package at [rootDir]. 47 /// Loads the entrypoint from a package at [rootDir].
48 Entrypoint(String rootDir, SystemCache cache) 48 Entrypoint(String rootDir, SystemCache cache)
49 : root = new Package.load(null, rootDir, cache.sources), 49 : root = new Package.load(null, rootDir, cache.sources),
50 cache = cache; 50 cache = cache;
51 51
52 // TODO(rnystrom): Make this path configurable. 52 // TODO(rnystrom): Make this path configurable.
53 /// The path to the entrypoint's "packages" directory. 53 /// The path to the entrypoint's "packages" directory.
54 String get packagesDir => path.join(root.dir, 'packages'); 54 String get packagesDir => path.join(root.dir, 'packages');
55 55
56 /// `true` if the entrypoint package currently has a lock file. 56 /// `true` if the entrypoint package currently has a lock file.
57 bool get lockFileExists => entryExists(_lockFilePath); 57 bool get lockFileExists => entryExists(lockFilePath);
58
59 /// The path to the entrypoint package's lockfile.
60 String get lockFilePath => path.join(root.dir, 'pubspec.lock');
58 61
59 /// Ensures that the package identified by [id] is installed to the directory. 62 /// Ensures that the package identified by [id] is installed to the directory.
60 /// Returns the resolved [PackageId]. 63 /// Returns the resolved [PackageId].
61 /// 64 ///
62 /// If this completes successfully, the package is guaranteed to be importable 65 /// If this completes successfully, the package is guaranteed to be importable
63 /// using the `package:` scheme. 66 /// using the `package:` scheme.
64 /// 67 ///
65 /// This will automatically install the package to the system-wide cache as 68 /// This will automatically install the package to the system-wide cache as
66 /// well if it requires network access to retrieve (specifically, if the 69 /// well if it requires network access to retrieve (specifically, if the
67 /// package's source has [shouldCache] as `true`). 70 /// package's source has [shouldCache] as `true`).
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 _saveLockFile(ids); 146 _saveLockFile(ids);
144 _installSelfReference(); 147 _installSelfReference();
145 _linkSecondaryPackageDirs(); 148 _linkSecondaryPackageDirs();
146 }); 149 });
147 } 150 }
148 151
149 /// Loads the list of concrete package versions from the `pubspec.lock`, if it 152 /// Loads the list of concrete package versions from the `pubspec.lock`, if it
150 /// exists. If it doesn't, this completes to an empty [LockFile]. 153 /// exists. If it doesn't, this completes to an empty [LockFile].
151 LockFile loadLockFile() { 154 LockFile loadLockFile() {
152 if (!lockFileExists) return new LockFile.empty(); 155 if (!lockFileExists) return new LockFile.empty();
153 return new LockFile.load(_lockFilePath, cache.sources); 156 return new LockFile.load(lockFilePath, cache.sources);
154 } 157 }
155 158
156 /// Determines whether or not the lockfile is out of date with respect to the 159 /// Determines whether or not the lockfile is out of date with respect to the
157 /// pubspec. 160 /// pubspec.
158 /// 161 ///
159 /// This will be `false` if there is no lockfile at all, or if the pubspec 162 /// This will be `false` if there is no lockfile at all, or if the pubspec
160 /// contains dependencies that are not in the lockfile or that don't match 163 /// contains dependencies that are not in the lockfile or that don't match
161 /// what's in there. 164 /// what's in there.
162 bool isLockFileUpToDate() { 165 bool isLockFileUpToDate() {
163 var lockFile = loadLockFile(); 166 var lockFile = loadLockFile();
(...skipping 12 matching lines...) Expand all
176 179
177 return true; 180 return true;
178 } 181 }
179 182
180 if (!root.dependencies.every(checkDependency)) return false; 183 if (!root.dependencies.every(checkDependency)) return false;
181 if (!root.devDependencies.every(checkDependency)) return false; 184 if (!root.devDependencies.every(checkDependency)) return false;
182 185
183 return true; 186 return true;
184 } 187 }
185 188
186 /// The path to the entrypoint package's lockfile.
187 String get _lockFilePath => path.join(root.dir, 'pubspec.lock');
188
189 /// Saves a list of concrete package versions to the `pubspec.lock` file. 189 /// Saves a list of concrete package versions to the `pubspec.lock` file.
190 void _saveLockFile(List<PackageId> packageIds) { 190 void _saveLockFile(List<PackageId> packageIds) {
191 var lockFile = new LockFile.empty(); 191 var lockFile = new LockFile.empty();
192 for (var id in packageIds) { 192 for (var id in packageIds) {
193 if (!id.isRoot) lockFile.packages[id.name] = id; 193 if (!id.isRoot) lockFile.packages[id.name] = id;
194 } 194 }
195 195
196 var lockFilePath = path.join(root.dir, 'pubspec.lock'); 196 var lockFilePath = path.join(root.dir, 'pubspec.lock');
197 writeTextFile(lockFilePath, lockFile.serialize()); 197 writeTextFile(lockFilePath, lockFile.serialize());
198 } 198 }
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
295 // Skip directories and broken symlinks. 295 // Skip directories and broken symlinks.
296 if (!fileExists(file)) return false; 296 if (!fileExists(file)) return false;
297 297
298 var relative = path.relative(file, from: beneath); 298 var relative = path.relative(file, from: beneath);
299 if (_BLACKLISTED_FILES.contains(path.basename(relative))) return false; 299 if (_BLACKLISTED_FILES.contains(path.basename(relative))) return false;
300 return !path.split(relative).any(_BLACKLISTED_DIRS.contains); 300 return !path.split(relative).any(_BLACKLISTED_DIRS.contains);
301 }).toList(); 301 }).toList();
302 }); 302 });
303 } 303 }
304 } 304 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698