Index: utils/pub/command_cache.dart |
=================================================================== |
--- utils/pub/command_cache.dart (revision 0) |
+++ utils/pub/command_cache.dart (revision 0) |
@@ -0,0 +1,48 @@ |
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
Bob Nystrom
2013/03/12 22:12:03
2013
keertip
2013/03/13 15:55:00
Done.
|
+// 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; |
Bob Nystrom
2013/03/12 22:12:03
Can you add a blank line between the "dart:" and o
keertip
2013/03/13 15:55:00
Done.
|
+import 'exit_codes.dart' as exit_codes; |
+import 'log.dart' as log; |
+import 'pub.dart'; |
+ |
+ |
+/// Handles the `cache` pub command. |
+class CacheCommand extends PubCommand { |
+ |
Bob Nystrom
2013/03/12 22:12:03
Remove this blank line.
keertip
2013/03/13 15:55:00
Done.
|
+ String get description => "Works on the pub cache."; |
Bob Nystrom
2013/03/12 22:12:03
"Inspect the system cache."
keertip
2013/03/13 15:55:00
Done.
|
+ String get usage => 'pub cache {list}'; |
Bob Nystrom
2013/03/12 22:12:03
'pub cache list'
keertip
2013/03/13 15:55:00
Done.
|
+ bool get requiresEntrypoint => false; |
+ |
+ Future onRun() { |
+ if (commandOptions.rest.isEmpty) { |
Bob Nystrom
2013/03/12 22:12:03
.rest.length != 1
keertip
2013/03/13 15:55:00
Done.
|
+ log.error('No cache command given.'); |
Bob Nystrom
2013/03/12 22:12:03
'The cache command expects one argument.'
keertip
2013/03/13 15:55:00
Done.
|
+ this.printUsage(); |
+ exit(exit_codes.USAGE); |
+ } |
+ |
+ var command = commandOptions.rest.removeAt(0); |
+ if (!['list'].contains(command)) { |
Bob Nystrom
2013/03/12 22:12:03
if (commandOptions.rest[0] != 'list')
keertip
2013/03/13 15:55:00
Done.
|
+ log.error('Unknown cache command "$command".'); |
+ this.printUsage(); |
+ exit(exit_codes.USAGE); |
+ } |
+ |
+ return cache.sources.defaultSource.getCachedPackages().then((packages){ |
nweiz
2013/03/12 22:58:48
Add a TODO here to add a flag to list packages fro
keertip
2013/03/13 15:55:00
Done.
|
+ var packagesObj = <String, Map>{}; |
+ for (var p in packages){ |
Bob Nystrom
2013/03/12 22:12:03
p -> package
keertip
2013/03/13 15:55:00
Done.
|
+ packagesObj[p.name] = { |
+ 'version': p.version.toString(), |
+ 'location': p.dir |
+ }; |
+ } |
Bob Nystrom
2013/03/12 22:12:03
Add a TODO to support non-JSON format and check fo
keertip
2013/03/13 15:55:00
Done.
|
+ log.message(' ${json.stringify({'pubcache': packagesObj})}'); |
Bob Nystrom
2013/03/12 22:12:03
Instead of 'pubcache', how about 'packages'?
Also
keertip
2013/03/13 15:55:00
Done.
|
+ }); |
+ } |
+} |
+ |