Gentoo Archives: gentoo-portage-dev

From: Zac Medico <zmedico@g.o>
To: gentoo-portage-dev@l.g.o
Cc: Zac Medico <zmedico@g.o>
Subject: [gentoo-portage-dev] [PATCH 2/3] glsa-check: Make --pretend output nicer
Date: Fri, 30 Aug 2019 23:03:39
Message-Id: 20190830230314.7597-3-zmedico@gentoo.org
In Reply to: [gentoo-portage-dev] [PATCH 0/3] glsa-check: forward port remaining changes from gentoolkit (bug 693088) by Zac Medico
1 This patch is a forward port of the following commit:
2
3 https://gitweb.gentoo.org/proj/gentoolkit.git/commit/?id=72ba7b1274faf37451b1641ee51140f53f4b7098
4
5 commit 72ba7b1274faf37451b1641ee51140f53f4b7098
6 Author: rbu <rbu@g.o>
7 AuthorDate: 2009-08-18 17:47:20 +0000
8 Commit: rbu <rbu@g.o>
9 CommitDate: 2009-08-18 17:47:20 +0000
10
11 Make --pretend output in glsa-check nicer. Add colors and fix linebreaks.
12
13 svn path=/trunk/gentoolkit/; revision=670
14
15 Bug: https://bugs.gentoo.org/693088
16 Signed-off-by: Zac Medico <zmedico@g.o>
17 ---
18 bin/glsa-check | 20 +++++++++++++++-----
19 1 file changed, 15 insertions(+), 5 deletions(-)
20
21 diff --git a/bin/glsa-check b/bin/glsa-check
22 index 3502812d9..bf81eca63 100755
23 --- a/bin/glsa-check
24 +++ b/bin/glsa-check
25 @@ -263,13 +263,23 @@ if mode in ["dump", "fix", "inject", "pretend"]:
26 for (vuln, update) in myglsa.getAffectionTable(least_change=least_change):
27 mergedict.setdefault(update, []).append(vuln)
28
29 + # first, extract the atoms that cannot be upgraded (where key == "")
30 + no_upgrades = []
31 sys.stdout.write(">>> The following updates will be performed for this GLSA:\n")
32 - for pkg in mergedict:
33 - if pkg != "":
34 - sys.stdout.write(" " + pkg + " (vulnerable: " + ", ".join(mergedict[pkg]) + ")\n")
35 if "" in mergedict:
36 - sys.stdout.write("\n>>> For the following packages, no upgrade path exists:\n")
37 - sys.stdout.write(" " + ", ".join(mergedict[""]))
38 + no_upgrades = mergedict[""]
39 + del mergedict[""]
40 +
41 + # see if anything is left that can be upgraded
42 + if mergedict:
43 + sys.stdout.write(">>> Updates that will be performed:\n")
44 + for (upd, vuln) in mergedict.items():
45 + sys.stdout.write(" " + green(upd) + " (vulnerable: " + red(", ".join(vuln)) + ")\n")
46 +
47 + if no_upgrades:
48 + sys.stdout.write(">>> No upgrade path exists for these packages:\n")
49 + sys.stdout.write(" " + red(", ".join(no_upgrades)) + "\n")
50 + sys.stdout.write("\n")
51 elif mode == "inject":
52 sys.stdout.write("injecting " + myid + "\n")
53 myglsa.inject()
54 --
55 2.21.0