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

Unified Diff: utils/pub/command_cache.dart

Issue 12755024: add cache list command to pub (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 9 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 | « no previous file | utils/pub/git_source.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: utils/pub/command_cache.dart
===================================================================
--- utils/pub/command_cache.dart (revision 0)
+++ utils/pub/command_cache.dart (revision 0)
@@ -0,0 +1,50 @@
+// Copyright (c) 2013, 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 command_cache;
+
+import 'dart:async';
+import 'dart:io';
+import 'dart:json' as json;
+
+import 'exit_codes.dart' as exit_codes;
+import 'log.dart' as log;
+import 'pub.dart';
+
+
+/// Handles the `cache` pub command.
+class CacheCommand extends PubCommand {
+ String get description => "Inspect the system cache.";
+ String get usage => 'pub cache list';
+ bool get requiresEntrypoint => false;
+
+ Future onRun() {
+ if (commandOptions.rest.length != 1) {
+ log.error('The cache command expects one argument.');
+ this.printUsage();
+ exit(exit_codes.USAGE);
+ }
+
+ if ((commandOptions.rest[0] != 'list')) {
+ log.error('Unknown cache command "${commandOptions.rest[0]}".');
+ this.printUsage();
+ exit(exit_codes.USAGE);
+ }
+
+ // TODO(keertip): Add flag to list packages from non default sources
+ return cache.sources.defaultSource.getCachedPackages().then((packages){
+ var packagesObj = <String, Map>{};
+ for (var package in packages){
+ packagesObj[package.name] = {
+ 'version': package.version.toString(),
+ 'location': package.dir
+ };
+ }
+ // TODO(keertip): Add support for non-JSON format
+ // and check for --format flag
+ log.message( json.stringify({'packages': packagesObj}));
+ });
+ }
+}
+
« no previous file with comments | « no previous file | utils/pub/git_source.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698