blob: dc0c6ffda7346ba1e35eac4af19e3a394e4759f8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
# Copyright 1999-2009 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
from portage.output import colorize, create_color_func
bad = create_color_func("BAD")
from _emerge.format_size import format_size
class PackageCounters(object):
def __init__(self):
self.upgrades = 0
self.downgrades = 0
self.new = 0
self.newslot = 0
self.reinst = 0
self.uninst = 0
self.blocks = 0
self.blocks_satisfied = 0
self.totalsize = 0
self.restrict_fetch = 0
self.restrict_fetch_satisfied = 0
self.interactive = 0
self.binary = 0
def __str__(self):
total_installs = self.upgrades + self.downgrades + self.newslot + self.new + self.reinst
myoutput = []
details = []
myoutput.append("Total: %s package" % total_installs)
if total_installs != 1:
myoutput.append("s")
if total_installs != 0:
myoutput.append(" (")
if self.upgrades > 0:
details.append("%s upgrade" % self.upgrades)
if self.upgrades > 1:
details[-1] += "s"
if self.downgrades > 0:
details.append("%s downgrade" % self.downgrades)
if self.downgrades > 1:
details[-1] += "s"
if self.new > 0:
details.append("%s new" % self.new)
if self.newslot > 0:
details.append("%s in new slot" % self.newslot)
if self.newslot > 1:
details[-1] += "s"
if self.reinst > 0:
details.append("%s reinstall" % self.reinst)
if self.reinst > 1:
details[-1] += "s"
if self.binary > 0:
details.append("%s binary" % self.binary)
if self.binary > 1:
details[-1] = details[-1][:-1] + "ies"
if self.uninst > 0:
details.append("%s uninstall" % self.uninst)
if self.uninst > 1:
details[-1] += "s"
if self.interactive > 0:
details.append("%s %s" % (self.interactive,
colorize("WARN", "interactive")))
myoutput.append(", ".join(details))
if total_installs != 0:
myoutput.append(")")
myoutput.append(", Size of downloads: %s" % format_size(self.totalsize))
if self.restrict_fetch:
myoutput.append("\nFetch Restriction: %s package" % \
self.restrict_fetch)
if self.restrict_fetch > 1:
myoutput.append("s")
if self.restrict_fetch_satisfied < self.restrict_fetch:
myoutput.append(bad(" (%s unsatisfied)") % \
(self.restrict_fetch - self.restrict_fetch_satisfied))
if self.blocks > 0:
myoutput.append("\nConflict: %s block" % \
self.blocks)
if self.blocks > 1:
myoutput.append("s")
if self.blocks_satisfied < self.blocks:
myoutput.append(bad(" (%s unsatisfied)") % \
(self.blocks - self.blocks_satisfied))
return "".join(myoutput)
|