Chromium Code Reviews| 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.
|
| + }); |
| + } |
| +} |
| + |