X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fgenerate_packages_sources.py;h=366d722b3351ebf2ea6ce737a02e855a366be390;hb=c9398d303256dfedc13975b79b6b691048cfcc05;hp=d51779f9c4dbc84e2bb75ba983958ea0cd710161;hpb=523fe5c7bf7c34bba8aa1125076efcd8fcca7063;p=dak.git diff --git a/dak/generate_packages_sources.py b/dak/generate_packages_sources.py index d51779f9..366d722b 100755 --- a/dak/generate_packages_sources.py +++ b/dak/generate_packages_sources.py @@ -35,6 +35,7 @@ import apt_pkg from daklib import daklog from daklib.dbconn import * from daklib.config import Config +from daklib.threadpool import ThreadPool ################################################################################ @@ -80,7 +81,7 @@ def main (): if Options["Help"]: usage() -# Logger = daklog.Logger(cnf, 'generate-packages-sources') + Logger = daklog.Logger(cnf, 'generate-packages-sources') session = DBConn().session() @@ -93,19 +94,27 @@ def main (): suites.append(suite) else: print "cannot find suite %s" % s -# Logger.log(['cannot find suite %s' % s]) + Logger.log(['cannot find suite %s' % s]) else: - suites=session.query(Suite).filter(Suite.untouchable == 'false').all() + suites=session.query(Suite).filter(Suite.untouchable == False).all() - for s in suites: - print "Working on: %s" % (s.suite_name) - sys.exit(0) - # For each given suite, look up object and call generate-filelist - for s in suites: - Logger.log(['generating filelist for %s' % (s.suite_name)]) - s.generate_filelist(Logger) + threadpool = ThreadPool() -# Logger.close() + startdir = os.getcwd() + os.chdir(cnf["Dir::TempPath"]) + + # For each given suite, each architecture, run one apt-ftparchive + for s in suites: + arch_list=get_suite_architectures(s.suite_name, skipsrc=False, skipall=True, session=session) + Logger.log(['generating output for Suite %s, Architectures %s' % (s.suite_name, arch_list)]) + for a in arch_list: + threadpool.queueTask(s.generate_packages_sources, (a.arch_string)) + + threadpool.joinAll() + os.chdir(startdir) + # this script doesn't change the database + session.close() + Logger.close() #######################################################################################