[kernel-sec-discuss] r4154 - scripts

Ben Hutchings benh at moszumanska.debian.org
Fri Feb 12 21:29:19 UTC 2016


Author: benh
Date: 2016-02-12 21:29:19 +0000 (Fri, 12 Feb 2016)
New Revision: 4154

Modified:
   scripts/filter-active.py
Log:
filter-active: Show all releases by default, using columnar format

Add support for showing multiple releases, with status truncated to 20
characters.  Show the release names as column headings.  When filtering
by state, include all issues where any release has a state that should
be included.

Make the -r option truly optional, and default to showing all releases
found in any issue.


Modified: scripts/filter-active.py
===================================================================
--- scripts/filter-active.py	2016-02-12 21:09:14 UTC (rev 4153)
+++ scripts/filter-active.py	2016-02-12 21:29:19 UTC (rev 4154)
@@ -72,24 +72,26 @@
     else:
         return m
 
-def filter_out_states(issues, release, states):
+def filter_out_states(issues, releases, states):
     filteredissues = []
     for i in issues:
-        m = parse_status(i.status(release))
-        drop = False
-        for s in states:
-            if s == m.group('state'):
-                drop = True
+        for release in releases or i.get_releases():
+            m = parse_status(i.status(release))
+            drop = False
+            for s in states:
+                if s == m.group('state'):
+                    drop = True
+                    break
+            if drop == False:
+                filteredissues.append(i)
                 break
-        if drop == False:
-            filteredissues.append(i)
 
     return filteredissues
 
 if __name__ == '__main__':
     parser = OptionParser()
     parser.add_option("-d", "--dirs", action="append")
-    parser.add_option("-r", "--release", dest="release")
+    parser.add_option("-r", "--release", action="append")
     parser.add_option("-s", "--states", action="append")
     parser.add_option("-n", "--notstates", action="append")
 
@@ -108,6 +110,26 @@
     if options.notstates:
         issues = filter_out_states(issues, options.release, options.notstates)
 
+    if not options.release:
+        all_releases = set()
+        for i in issues:
+            all_releases |= set(i.get_releases())
+        options.release = sorted(list(all_releases))
+
+    if len(options.release) == 1:
+        min_width = 0
+        max_width = 1000
+    else:
+        min_width = 20
+        max_width = 20
+        sys.stdout.write("                ")
+        for release in options.release:
+            sys.stdout.write(" %-20.20s " % release)
+        sys.stdout.write("\n")
+
     for i in issues:
-        sys.stdout.write("  %s: %s\n" % (i.name,
-                                         i.status(options.release) or "unknown"))
+        sys.stdout.write("  %s:" % i.name)
+        for release in options.release:
+            sys.stdout.write(" %-*.*s " %
+                             (min_width, max_width, i.status(release) or "unknown"))
+        sys.stdout.write("\n")




More information about the kernel-sec-discuss mailing list