Index: lib/src/entrypoint.dart |
diff --git a/lib/src/entrypoint.dart b/lib/src/entrypoint.dart |
index 0152926be06f375f9d77133da49fd124981d524f..6b763acfd6541eaf4017e33c2e23ab94f05af9f4 100644 |
--- a/lib/src/entrypoint.dart |
+++ b/lib/src/entrypoint.dart |
@@ -90,7 +90,7 @@ class Entrypoint { |
assertUpToDate(); |
var packages = new Map.fromIterable(lockFile.packages.values, |
key: (id) => id.name, |
- value: (id) => cache.sources.load(id)); |
+ value: (id) => cache.load(id)); |
packages[root.name] = root; |
_packageGraph = new PackageGraph(this, lockFile, packages); |
@@ -169,7 +169,7 @@ class Entrypoint { |
/// Updates [lockFile] and [packageRoot] accordingly. |
Future acquireDependencies(SolveType type, {List<String> useLatest, |
bool dryRun: false, bool precompile: true}) async { |
- var result = await resolveVersions(type, cache.sources, root, |
+ var result = await resolveVersions(type, cache, root, |
lockFile: lockFile, useLatest: useLatest); |
if (!result.succeeded) throw result.error; |
@@ -217,7 +217,7 @@ class Entrypoint { |
log.exception(error, stackTrace); |
} |
- writeTextFile(packagesFile, lockFile.packagesFile(root.name)); |
+ writeTextFile(packagesFile, lockFile.packagesFile(cache, root.name)); |
} |
/// Precompile any transformed dependencies of the entrypoint. |
@@ -432,7 +432,7 @@ class Entrypoint { |
Future _get(PackageId id) async { |
if (id.isRoot) return; |
- var source = cache.sources[id.source]; |
+ var source = cache.source(id.source); |
if (!_packageSymlinks) { |
if (source is CachedSource) await source.downloadToSystemCache(id); |
return; |
@@ -516,11 +516,11 @@ class Entrypoint { |
// Check that uncached dependencies' pubspecs are also still satisfied, |
// since they're mutable and may have changed since the last get. |
for (var id in lockFile.packages.values) { |
- var source = cache.sources[id.source]; |
+ var source = cache.source(id.source); |
if (source is CachedSource) continue; |
try { |
- if (cache.sources.load(id).dependencies.every((dep) => |
+ if (cache.load(id).dependencies.every((dep) => |
overrides.contains(dep.name) || _isDependencyUpToDate(dep))) { |
continue; |
} |
@@ -561,10 +561,11 @@ class Entrypoint { |
// We only care about cached sources. Uncached sources aren't "installed". |
// If one of those is missing, we want to show the user the file not |
// found error later since installing won't accomplish anything. |
- if (source is! CachedSource) return true; |
+ var boundSource = cache.source(package.source); |
+ if (boundSource is! CachedSource) return true; |
// Get the directory. |
- var dir = source.getDirectory(package); |
+ var dir = boundSource.getDirectory(package); |
// See if the directory is there and looks like a package. |
return dirExists(dir) && fileExists(p.join(dir, "pubspec.yaml")); |
}); |
@@ -581,13 +582,13 @@ class Entrypoint { |
p.toUri(packagesFile)); |
return lockFile.packages.values.every((lockFileId) { |
- var source = cache.sources[lockFileId.source]; |
+ var source = cache.source(lockFileId.source); |
// It's very unlikely that the lockfile is invalid here, but it's not |
// impossible—for example, the user may have a very old application |
// package with a checked-in lockfile that's newer than the pubspec, but |
// that contains sdk dependencies. |
- if (source == null) return false; |
+ if (source.source is UnknownSource) return false; |
var packagesFileUri = packages[lockFileId.name]; |
if (packagesFileUri == null) return false; |