summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorBen Hutchings <benh@debian.org>2016-02-12 21:29:19 +0000
committerBen Hutchings <benh@debian.org>2016-02-12 21:29:19 +0000
commit62db74b621cfa2c9bf00938371fc1dcccb7fd492 (patch)
tree977da397478a4ea025cda35e34e5ef53b3bffbd5 /scripts
parent6b69407c1b6b6be0995a7723897c3e5a312a6302 (diff)
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. git-svn-id: svn+ssh://svn.debian.org/svn/kernel-sec@4154 e094ebfe-e918-0410-adfb-c712417f3574
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/filter-active.py44
1 files changed, 33 insertions, 11 deletions
diff --git a/scripts/filter-active.py b/scripts/filter-active.py
index 18c19e43..4fb599f0 100755
--- a/scripts/filter-active.py
+++ b/scripts/filter-active.py
@@ -72,24 +72,26 @@ def parse_status(s):
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 __name__ == '__main__':
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")

© 2014-2024 Faster IT GmbH | imprint | privacy policy