This patch is a forward port of the following commit:

https://gitweb.gentoo.org/proj/gentoolkit.git/commit/?id=72ba7b1274faf37451b1641ee51140f53f4b7098

commit 72ba7b1274faf37451b1641ee51140f53f4b7098
Author:     rbu <r...@gentoo.org>
AuthorDate: 2009-08-18 17:47:20 +0000
Commit:     rbu <r...@gentoo.org>
CommitDate: 2009-08-18 17:47:20 +0000

    Make --pretend output in glsa-check nicer. Add colors and fix linebreaks.

    svn path=/trunk/gentoolkit/; revision=670

Bug: https://bugs.gentoo.org/693088
Signed-off-by: Zac Medico <zmed...@gentoo.org>
---
 bin/glsa-check | 20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)

diff --git a/bin/glsa-check b/bin/glsa-check
index 3502812d9..bf81eca63 100755
--- a/bin/glsa-check
+++ b/bin/glsa-check
@@ -263,13 +263,23 @@ if mode in ["dump", "fix", "inject", "pretend"]:
                                for (vuln, update) in 
myglsa.getAffectionTable(least_change=least_change):
                                        mergedict.setdefault(update, 
[]).append(vuln)
 
+                               # first, extract the atoms that cannot be 
upgraded (where key == "")
+                               no_upgrades = []
                                sys.stdout.write(">>> The following updates 
will be performed for this GLSA:\n")
-                               for pkg in mergedict:
-                                       if pkg != "":
-                                               sys.stdout.write("     " + pkg 
+ " (vulnerable: " + ", ".join(mergedict[pkg]) + ")\n")
                                if "" in mergedict:
-                                       sys.stdout.write("\n>>> For the 
following packages, no upgrade path exists:\n")
-                                       sys.stdout.write("     " + ", 
".join(mergedict[""]))
+                                       no_upgrades = mergedict[""]
+                                       del mergedict[""]
+
+                               # see if anything is left that can be upgraded
+                               if mergedict:
+                                       sys.stdout.write(">>> Updates that will 
be performed:\n")
+                                       for (upd, vuln) in mergedict.items():
+                                               sys.stdout.write("     " + 
green(upd) + " (vulnerable: " + red(", ".join(vuln)) + ")\n")
+
+                               if no_upgrades:
+                                       sys.stdout.write(">>> No upgrade path 
exists for these packages:\n")
+                                       sys.stdout.write("     " + red(", 
".join(no_upgrades)) + "\n")
+                       sys.stdout.write("\n")
                elif mode == "inject":
                        sys.stdout.write("injecting " + myid + "\n")
                        myglsa.inject()
-- 
2.21.0


Reply via email to