]> git.decadent.org.uk Git - dak.git/blobdiff - dak/generate_filelist.py
byhand-di: allow YYYYMMDD+<suite>x version numbers
[dak.git] / dak / generate_filelist.py
index a4aba326f1e4c8d14d862b3f91515c364ec54280..c8d51a54632f326eeeb68fa1e00190a772728fae 100755 (executable)
@@ -212,31 +212,28 @@ def main():
     Options = cnf.SubTree("Filelist::Options")
     if Options['Help']:
         usage()
-    suite_arch = session.query(SuiteArchitecture)
     threadpool = ThreadPool()
-    for suite_name in utils.split_args(Options['Suite']):
-        suite = query_suites.filter_by(suite_name = suite_name).one()
-        join = suite_arch.filter_by(suite_id = suite.suite_id)
-        for component_name in utils.split_args(Options['Component']):
-            component = session.query(Component).\
-                filter_by(component_name = component_name).one()
-            for architecture_name in utils.split_args(Options['Architecture']):
-                architecture = query_architectures.\
-                    filter_by(arch_string = architecture_name).one()
-                try:
-                    join.filter_by(arch_id = architecture.arch_id).one()
-                    if architecture_name == 'source':
-                        threadpool.queueTask(writeSourceList,
-                            (suite, component, Options['Incremental']))
-                    elif architecture_name != 'all':
-                        threadpool.queueTask(writeBinaryList,
-                            (suite, component, architecture, 'deb',
-                                Options['Incremental']))
-                        threadpool.queueTask(writeBinaryList,
-                            (suite, component, architecture, 'udeb',
-                                Options['Incremental']))
-                except:
+    query_suites = query_suites. \
+        filter(Suite.suite_name.in_(utils.split_args(Options['Suite'])))
+    query_components = query_components. \
+        filter(Component.component_name.in_(utils.split_args(Options['Component'])))
+    query_architectures = query_architectures. \
+        filter(Architecture.arch_string.in_(utils.split_args(Options['Architecture'])))
+    for suite in query_suites:
+        for component in query_components:
+            for architecture in query_architectures:
+                if architecture not in suite.architectures:
                     pass
+                elif architecture.arch_string == 'source':
+                    threadpool.queueTask(writeSourceList,
+                        (suite, component, Options['Incremental']))
+                elif architecture.arch_string != 'all':
+                    threadpool.queueTask(writeBinaryList,
+                        (suite, component, architecture, 'deb',
+                            Options['Incremental']))
+                    threadpool.queueTask(writeBinaryList,
+                        (suite, component, architecture, 'udeb',
+                            Options['Incremental']))
     threadpool.joinAll()
     # this script doesn't change the database
     session.close()