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

Unified Diff: utils/pub/pub.dart

Issue 10091014: Start implementing pub object model. Rudimentary package cache class, and a simple pub command to l… (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Platform is static now. Created 8 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « utils/pub/package.dart ('k') | utils/tests/pub/pub_tests.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: utils/pub/pub.dart
diff --git a/utils/pub/pub.dart b/utils/pub/pub.dart
index a3a5ff3bb42c8da2d69661c36ed1af086eb98a34..6ed5b269d50a13a135131cb64e7cf0f7c04cc8df 100644
--- a/utils/pub/pub.dart
+++ b/utils/pub/pub.dart
@@ -7,9 +7,15 @@
*/
#library('pub');
+#import('io.dart');
#import('utils.dart');
-List<String, PubCommand> commands;
+#source('cache.dart');
+#source('command_list.dart');
+#source('command_update.dart');
+#source('package.dart');
+
+Map<String, PubCommand> commands;
main() {
final args = new Options().arguments;
@@ -18,7 +24,8 @@ main() {
// should also add special-case support for --help and --version arguments to
// be consistent with other Unix apps.
commands = {
- 'version': new PubCommand('print Pub version', showVersion)
+ 'list': new PubCommand('print the contents of repositories', commandList),
+ 'version': new PubCommand('print Pub version', commandVersion)
};
if (args.length == 0) {
@@ -26,17 +33,31 @@ main() {
return;
}
+ // TODO(rnystrom): Hack. This is temporary code to allow the pub tests to
+ // pass in relevant paths. Eventually these should be either environment
+ // variables or at least a cleaner arg parser.
+ var cacheDir;
+ for (var i = 0; i < args.length; i++) {
+ if (args[i].startsWith('--cachedir=')) {
+ cacheDir = args[i].substring('--cachedir='.length);
+ args.removeRange(i, 1);
+ break;
+ }
+ }
+
+ var options = new PubOptions(cacheDir);
+
// Select the command.
final command = commands[args[0]];
if (command == null) {
print('Unknown command "${args[0]}".');
print('Run "pub help" to see available commands.');
- exit(64); // see http://www.freebsd.org/cgi/man.cgi?query=sysexits.
+ exit(64); // See http://www.freebsd.org/cgi/man.cgi?query=sysexits.
return;
}
args.removeRange(0, 1);
- command.function(args);
+ command.function(options, args);
}
/** Displays usage information for the app. */
@@ -70,12 +91,12 @@ void showUsage() {
}
/** Displays pub version information. */
-void showVersion(List<String> args) {
+void commandVersion(PubOptions options, List<String> args) {
// TODO(rnystrom): Store some place central.
print('Pub 0.0.0');
}
-typedef void CommandFunction(List<String> args);
+typedef void CommandFunction(PubOptions options, List<String> args);
class PubCommand {
final String description;
@@ -83,3 +104,9 @@ class PubCommand {
PubCommand(this.description, this.function);
}
+
+class PubOptions {
+ final String cacheDir;
+
+ PubOptions(this.cacheDir);
+}
« no previous file with comments | « utils/pub/package.dart ('k') | utils/tests/pub/pub_tests.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698