X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fgenerate_filelist.py;h=c8d51a54632f326eeeb68fa1e00190a772728fae;hb=b43634b6faf221ee10fc63116baead379f68f92f;hp=1a31ed310cd0e3812f32530355c104b30087ed3f;hpb=5e0cbd293ee595359c856ea5d8b2dfc3b84f6d9b;p=dak.git diff --git a/dak/generate_filelist.py b/dak/generate_filelist.py index 1a31ed31..c8d51a54 100755 --- a/dak/generate_filelist.py +++ b/dak/generate_filelist.py @@ -181,7 +181,7 @@ Create filename lists for apt-ftparchive. ARCH, COMPONENT and SUITE can be comma (or space) separated list, e.g. --suite=testing,unstable -Incremental mode appends only newer files to exising lists.""" +Incremental mode appends only newer files to existing lists.""" sys.exit() def main(): @@ -191,50 +191,49 @@ def main(): ('c', "component", "Filelist::Options::Component", "HasArg"), ('a', "architecture", "Filelist::Options::Architecture", "HasArg"), ('i', "incremental", "Filelist::Options::Incremental")] - query_suites = DBConn().session().query(Suite) - suites = [suite.suite_name for suite in query_suites.all()] + session = DBConn().session() + query_suites = session.query(Suite) + suites = [suite.suite_name for suite in query_suites] if not cnf.has_key('Filelist::Options::Suite'): - cnf['Filelist::Options::Suite'] = ','.join(suites) - # we can ask the database for components if 'mixed' is gone + cnf['Filelist::Options::Suite'] = ','.join(suites).encode() + query_components = session.query(Component) + components = \ + [component.component_name for component in query_components] if not cnf.has_key('Filelist::Options::Component'): - cnf['Filelist::Options::Component'] = 'main,contrib,non-free' - query_architectures = DBConn().session().query(Architecture) + cnf['Filelist::Options::Component'] = ','.join(components).encode() + query_architectures = session.query(Architecture) architectures = \ - [architecture.arch_string for architecture in query_architectures.all()] + [architecture.arch_string for architecture in query_architectures] if not cnf.has_key('Filelist::Options::Architecture'): - cnf['Filelist::Options::Architecture'] = ','.join(architectures) + cnf['Filelist::Options::Architecture'] = ','.join(architectures).encode() cnf['Filelist::Options::Help'] = '' cnf['Filelist::Options::Incremental'] = '' apt_pkg.ParseCommandLine(cnf.Cnf, Arguments, sys.argv) Options = cnf.SubTree("Filelist::Options") if Options['Help']: usage() - session = DBConn().session() - 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()