e10bc2d3e0
This reapplies r20952, r20953, r20954 together with hiding sleep from dart:io in a number of tests. R=ager@google.com Review URL: https://codereview.chromium.org//13704003 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20964 260f80e4-7a28-3924-810f-c04153c831b5
50 lines
1.4 KiB
Dart
50 lines
1.4 KiB
Dart
// 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
|
|
var packagesObj = <String, Map>{};
|
|
for (var package in cache.sources.defaultSource.getCachedPackages()) {
|
|
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}));
|
|
}
|
|
}
|
|
|