| OLD | NEW |
| 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 source; | 5 library source; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 | 8 |
| 9 import '../../pkg/path/lib/path.dart' as path; | 9 import '../../pkg/path/lib/path.dart' as path; |
| 10 | 10 |
| (...skipping 29 matching lines...) Expand all Loading... |
| 40 assert(_systemCache != null); | 40 assert(_systemCache != null); |
| 41 return _systemCache; | 41 return _systemCache; |
| 42 } | 42 } |
| 43 | 43 |
| 44 /// The system cache variable. Set by [_bind]. | 44 /// The system cache variable. Set by [_bind]. |
| 45 SystemCache _systemCache; | 45 SystemCache _systemCache; |
| 46 | 46 |
| 47 /// The root directory of this source's cache within the system cache. | 47 /// The root directory of this source's cache within the system cache. |
| 48 /// | 48 /// |
| 49 /// This shouldn't be overridden by subclasses. | 49 /// This shouldn't be overridden by subclasses. |
| 50 String get systemCacheRoot => join(systemCache.rootDir, name); | 50 String get systemCacheRoot => path.join(systemCache.rootDir, name); |
| 51 | 51 |
| 52 /// Records the system cache to which this source belongs. | 52 /// Records the system cache to which this source belongs. |
| 53 /// | 53 /// |
| 54 /// This should only be called once for each source, by | 54 /// This should only be called once for each source, by |
| 55 /// [SystemCache.register]. It should not be overridden by base classes. | 55 /// [SystemCache.register]. It should not be overridden by base classes. |
| 56 void bind(SystemCache systemCache) { | 56 void bind(SystemCache systemCache) { |
| 57 assert(_systemCache == null); | 57 assert(_systemCache == null); |
| 58 this._systemCache = systemCache; | 58 this._systemCache = systemCache; |
| 59 } | 59 } |
| 60 | 60 |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 137 /// that symlink. | 137 /// that symlink. |
| 138 /// | 138 /// |
| 139 /// This tries to determine if the cached package at [packageDir] has been | 139 /// This tries to determine if the cached package at [packageDir] has been |
| 140 /// corrupted. The heuristics are it is corrupted if any of the following are | 140 /// corrupted. The heuristics are it is corrupted if any of the following are |
| 141 /// true: | 141 /// true: |
| 142 /// | 142 /// |
| 143 /// * It has an empty "lib" directory. | 143 /// * It has an empty "lib" directory. |
| 144 /// * It has no pubspec. | 144 /// * It has no pubspec. |
| 145 Future<bool> _isCachedPackageCorrupted(String packageDir) { | 145 Future<bool> _isCachedPackageCorrupted(String packageDir) { |
| 146 return defer(() { | 146 return defer(() { |
| 147 if (!fileExists(join(packageDir, "pubspec.yaml"))) return true; | 147 if (!fileExists(path.join(packageDir, "pubspec.yaml"))) return true; |
| 148 | 148 |
| 149 var libDir = join(packageDir, "lib"); | 149 var libDir = path.join(packageDir, "lib"); |
| 150 if (dirExists(libDir)) { | 150 if (dirExists(libDir)) { |
| 151 return listDir(libDir).then((contents) => contents.length == 0); | 151 return listDir(libDir).then((contents) => contents.length == 0); |
| 152 } | 152 } |
| 153 | 153 |
| 154 // If we got here, it's OK. | 154 // If we got here, it's OK. |
| 155 return false; | 155 return false; |
| 156 }); | 156 }); |
| 157 } | 157 } |
| 158 | 158 |
| 159 /// Returns the directory in the system cache that the package identified by | 159 /// Returns the directory in the system cache that the package identified by |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 202 /// according to [validateDescription], although it must still be serializable | 202 /// according to [validateDescription], although it must still be serializable |
| 203 /// to JSON and YAML. It must also be equal to [id] according to | 203 /// to JSON and YAML. It must also be equal to [id] according to |
| 204 /// [descriptionsEqual]. | 204 /// [descriptionsEqual]. |
| 205 /// | 205 /// |
| 206 /// By default, this just returns [id]. | 206 /// By default, this just returns [id]. |
| 207 Future<PackageId> resolveId(PackageId id) => new Future.immediate(id); | 207 Future<PackageId> resolveId(PackageId id) => new Future.immediate(id); |
| 208 | 208 |
| 209 /// Returns the source's name. | 209 /// Returns the source's name. |
| 210 String toString() => name; | 210 String toString() => name; |
| 211 } | 211 } |
| OLD | NEW |