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

Side by Side Diff: lib/src/command/cache_repair.dart

Issue 2079303003: Track Source objects in PackageNames. (Closed) Base URL: git@github.com:dart-lang/pub.git@master
Patch Set: Code review changes Created 4 years, 6 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 unified diff | Download patch
« no previous file with comments | « lib/src/command/cache_add.dart ('k') | lib/src/entrypoint.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 import 'dart:async'; 5 import 'dart:async';
6 6
7 import '../command.dart'; 7 import '../command.dart';
8 import '../exit_codes.dart' as exit_codes; 8 import '../exit_codes.dart' as exit_codes;
9 import '../io.dart'; 9 import '../io.dart';
10 import '../log.dart' as log; 10 import '../log.dart' as log;
11 import '../source/cached.dart'; 11 import '../source/cached.dart';
12 import '../utils.dart'; 12 import '../utils.dart';
13 13
14 /// Handles the `cache repair` pub command. 14 /// Handles the `cache repair` pub command.
15 class CacheRepairCommand extends PubCommand { 15 class CacheRepairCommand extends PubCommand {
16 String get name => "repair"; 16 String get name => "repair";
17 String get description => "Reinstall cached packages."; 17 String get description => "Reinstall cached packages.";
18 String get invocation => "pub cache repair"; 18 String get invocation => "pub cache repair";
19 String get docUrl => "http://dartlang.org/tools/pub/cmd/pub-cache.html"; 19 String get docUrl => "http://dartlang.org/tools/pub/cmd/pub-cache.html";
20 bool get takesArguments => false; 20 bool get takesArguments => false;
21 21
22 Future run() async { 22 Future run() async {
23 var successes = []; 23 var successes = [];
24 var failures = []; 24 var failures = [];
25 25
26 // Repair every cached source. 26 // Repair every cached source.
27 for (var source in cache.sources.all 27 for (var source in cache.sources.all.map(cache.source)) {
28 .map((source) => cache.source(source.name))) {
29 if (source is! CachedSource) continue; 28 if (source is! CachedSource) continue;
30 29
31 var results = await source.repairCachedPackages(); 30 var results = await source.repairCachedPackages();
32 successes.addAll(results.first); 31 successes.addAll(results.first);
33 failures.addAll(results.last); 32 failures.addAll(results.last);
34 } 33 }
35 34
36 if (successes.length > 0) { 35 if (successes.length > 0) {
37 var packages = pluralize("package", successes.length); 36 var packages = pluralize("package", successes.length);
38 log.message("Reinstalled ${log.green(successes.length)} $packages."); 37 log.message("Reinstalled ${log.green(successes.length)} $packages.");
39 } 38 }
40 39
41 if (failures.length > 0) { 40 if (failures.length > 0) {
42 var packages = pluralize("package", failures.length); 41 var packages = pluralize("package", failures.length);
43 var buffer = new StringBuffer( 42 var buffer = new StringBuffer(
44 "Failed to reinstall ${log.red(failures.length)} $packages:\n"); 43 "Failed to reinstall ${log.red(failures.length)} $packages:\n");
45 44
46 for (var id in failures) { 45 for (var id in failures) {
47 buffer.write("- ${log.bold(id.name)} ${id.version}"); 46 buffer.write("- ${log.bold(id.name)} ${id.version}");
48 if (cache.sources[id.source] != cache.sources.defaultSource) { 47 if (id.source != cache.sources.defaultSource) {
49 buffer.write(" from ${id.source}"); 48 buffer.write(" from ${id.source}");
50 } 49 }
51 buffer.writeln(); 50 buffer.writeln();
52 } 51 }
53 52
54 log.message(buffer.toString()); 53 log.message(buffer.toString());
55 } 54 }
56 55
57 var results = await globals.repairActivatedPackages(); 56 var results = await globals.repairActivatedPackages();
58 if (results.first.length > 0) { 57 if (results.first.length > 0) {
(...skipping 10 matching lines...) Expand all
69 68
70 if (successes.length == 0 && failures.length == 0) { 69 if (successes.length == 0 && failures.length == 0) {
71 log.message("No packages in cache, so nothing to repair."); 70 log.message("No packages in cache, so nothing to repair.");
72 } 71 }
73 72
74 if (failures.length > 0 || results.last.length > 0) { 73 if (failures.length > 0 || results.last.length > 0) {
75 await flushThenExit(exit_codes.UNAVAILABLE); 74 await flushThenExit(exit_codes.UNAVAILABLE);
76 } 75 }
77 } 76 }
78 } 77 }
OLDNEW
« no previous file with comments | « lib/src/command/cache_add.dart ('k') | lib/src/entrypoint.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698