[kernel-sec-discuss] r4155 - scripts
Ben Hutchings
benh at moszumanska.debian.org
Fri Feb 12 21:59:41 UTC 2016
Author: benh
Date: 2016-02-12 21:59:41 +0000 (Fri, 12 Feb 2016)
New Revision: 4155
Modified:
scripts/filter-active.py
Log:
filter-active: Add optional colour-coding of status
Add options to enable/disable colour-coding, and enable by default if
writing to a terminal.
Modified: scripts/filter-active.py
===================================================================
--- scripts/filter-active.py 2016-02-12 21:29:19 UTC (rev 4154)
+++ scripts/filter-active.py 2016-02-12 21:59:41 UTC (rev 4155)
@@ -1,6 +1,6 @@
#!/usr/bin/python
-import os, re, sys
+import os, re, sys, curses
from optparse import OptionParser
from debian import deb822
@@ -94,6 +94,9 @@
parser.add_option("-r", "--release", action="append")
parser.add_option("-s", "--states", action="append")
parser.add_option("-n", "--notstates", action="append")
+ parser.add_option("-c", "--color", "--colour", action="store_true")
+ parser.add_option("--no-color", "--no-colour",
+ action="store_false", dest="color")
(options, args) = parser.parse_args()
@@ -103,6 +106,24 @@
if not options.states and not options.notstates:
print('I: Excluding N/A, ignored and released issues')
options.notstates = ['N/A', 'ignored', 'released']
+ if options.color is None:
+ options.color = sys.stdout.isatty()
+ if options.color:
+ curses.setupterm()
+ status_color = {"needed": curses.tparm(curses.tigetstr("setaf"),
+ curses.COLOR_RED),
+ "ignored": curses.tparm(curses.tigetstr("setaf"),
+ curses.COLOR_YELLOW),
+ "pending": curses.tparm(curses.tigetstr("setaf"),
+ curses.COLOR_MAGENTA),
+ "released": curses.tparm(curses.tigetstr("setaf"),
+ curses.COLOR_GREEN),
+ "N/A": curses.tparm(curses.tigetstr("setaf"),
+ curses.COLOR_GREEN)}
+ color_off = curses.tparm(curses.tigetstr("op"))
+ else:
+ color_off = ''
+
issues = []
for d in options.dirs:
issues = issues + get_issues(d)
@@ -130,6 +151,12 @@
for i in issues:
sys.stdout.write(" %s:" % i.name)
for release in options.release:
- sys.stdout.write(" %-*.*s " %
- (min_width, max_width, i.status(release) or "unknown"))
+ status = i.status(release) or "unknown"
+ status_short = status.split(' ')[0]
+ if options.color and status_color.has_key(status_short):
+ color_on = status_color[status_short]
+ else:
+ color_on = ''
+ sys.stdout.write(" %s%-*.*s%s " %
+ (color_on, min_width, max_width, status, color_off))
sys.stdout.write("\n")
More information about the kernel-sec-discuss
mailing list