[Reproducible-commits] [misc] 01/01: filter-packages can show only ftbfs packages (...)

Chris West faux-guest at moszumanska.debian.org
Sat Oct 24 10:38:54 UTC 2015


This is an automated email from the git hooks/post-receive script.

faux-guest pushed a commit to branch master
in repository misc.

commit 452e425336ed295c390681a5c27046013f60559b
Author: Chris West (Faux) <git at goeswhere.com>
Date:   Sat Oct 24 11:38:11 2015 +0100

    filter-packages can show only ftbfs packages (...)
    
    This, unfortunately, needed a port to python3, which was much more
    involved than I was expecting, and I was too lazy to split it into two
    different commits.  clean-notes could not be imported without errors.
---
 filter-packages | 23 ++++++++++++++++++-----
 1 file changed, 18 insertions(+), 5 deletions(-)

diff --git a/filter-packages b/filter-packages
index 7473690..9c6fe99 100755
--- a/filter-packages
+++ b/filter-packages
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # -*- coding: utf-8 -*-
 #
 # filter-packages: easily find and filter packages.yml
@@ -12,7 +12,10 @@ import optparse
 
 from os.path import join, dirname, abspath
 
+
 def main():
+    status = None
+
     parser = optparse.OptionParser(usage='%prog [options] [packages.yml]')
     parser.add_option('--issues', dest='issues', default=None,
         help="only print packages with comma-separated issues ISSUES")
@@ -28,6 +31,8 @@ def main():
         help="print package version")
     parser.add_option('--issues-exact', dest='issues_exact', action='store_true',
         help="match set of issues exactly")
+    parser.add_option('--show-ftbfs', dest='show_ftbfs', action='store_true',
+        help="only show ftbfs packages")
 
     options, args = parser.parse_args()
 
@@ -43,13 +48,13 @@ def main():
     with open(filename) as f:
         packages = yaml.safe_load(f)
 
-    for x, y in sorted(packages.iteritems()):
+    for x, y in sorted(packages.items()):
         issues = set(y.get('issues', ()))
 
         if options.issues_exact and options.issues != issues:
             continue
 
-        if not options.issues <= issues:
+        if options.issues is not None and not options.issues <= issues:
             continue
 
         if options.bugs is not None and options.bugs ^ ('bugs' in y):
@@ -59,10 +64,18 @@ def main():
             continue
 
         if options.show_version:
-            print "%s %s" % (x, y.get('version', ''))
+            print("%s %s" % (x, y.get('version', '')))
             continue
 
-        print x
+        if options.show_ftbfs:
+            if not status:
+                clean_notes = __import__('clean-notes')
+                status = clean_notes.load_reproducible_status()
+
+            if status.get(x, {}).get('status', None) != 'FTBFS':
+                continue
+
+        print(x)
 
     return 0
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/misc.git



More information about the Reproducible-commits mailing list