Index: utils/pub/root_source.dart |
diff --git a/utils/pub/root_source.dart b/utils/pub/root_source.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..1e8d4f400bf1225da1f9057afbfc968f63f82a24 |
--- /dev/null |
+++ b/utils/pub/root_source.dart |
@@ -0,0 +1,35 @@ |
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
+// for details. All rights reserved. Use of this source code is governed by a |
+// BSD-style license that can be found in the LICENSE file. |
+ |
+#library('root_source'); |
+ |
+#import('package.dart'); |
+#import('source.dart'); |
+ |
+/** |
+ * A source used only for the root package when doing version resolution. It |
+ * contains only the root package and is unable to install packages. |
+ * |
+ * This source cannot be referenced from a pubspec. |
+ */ |
+class RootSource extends Source { |
+ final String name = "root"; |
+ final bool shouldCache = false; |
+ final Package package; |
+ |
+ RootSource(this.package); |
+ |
+ Future<List<Version>> getVersions(description) { |
+ return Future<List<Version>>.immediate([package.version]); |
+ } |
+ |
+ Future<Pubspec> describe(PackageId id) { |
+ return Future<Pubspec>.immediate(package.pubspec); |
+ } |
+ |
+ Future<bool> install(PackageId id, String destPath) { |
+ throw new UnsupportedOperationException( |
+ "Can't install from a root source."); |
+ } |
+} |