X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fgenerate_packages_sources2.py;h=a7efea24720219fcc4fc58767520350130aae0ec;hb=3b8862ae0e21fae9fc552d4df160f45684976d7d;hp=eea799f5b38c7e20f062d1a82ce913527b5b42a2;hpb=3be5bc9fca7a4721d0f60563bf2545541c685adb;p=dak.git diff --git a/dak/generate_packages_sources2.py b/dak/generate_packages_sources2.py index eea799f5..a7efea24 100755 --- a/dak/generate_packages_sources2.py +++ b/dak/generate_packages_sources2.py @@ -31,11 +31,13 @@ Generate Packages/Sources files from daklib.dbconn import * from daklib.config import Config from daklib import utils, daklog -from daklib.dakmultiprocessing import Pool +from daklib.dakmultiprocessing import DakProcessPool, PROC_STATUS_SUCCESS, PROC_STATUS_SIGNALRAISED from daklib.filewriter import PackagesFileWriter, SourcesFileWriter import apt_pkg, os, stat, sys +EXIT_STATUS = 0 + def usage(): print """Usage: dak generate-packages-sources2 [OPTIONS] Generate the Packages/Sources files @@ -263,28 +265,35 @@ def main(): component_ids = [ c.component_id for c in session.query(Component).all() ] - def log(details): - logger.log(details) - - #pool = Pool() + def parse_results(message): + # Split out into (code, msg) + code, msg = message + if code == PROC_STATUS_SUCCESS: + Logger.log([msg]) + elif code == PROC_STATUS_SIGNALRAISED: + Logger.log(['E: Subprocess recieved signal ', msg]) + else: + Logger.log(['E: ', msg]) + + pool = DakProcessPool() for s in suites: if s.untouchable and not force: utils.fubar("Refusing to touch %s (untouchable and not forced)" % s.suite_name) for c in component_ids: - logger.log(generate_sources(s.suite_id, c)) - #pool.apply_async(generate_sources, [s.suite_id, c], callback=log) + pool.apply_async(generate_sources, [s.suite_id, c], callback=parse_result) for a in s.architectures: - logger.log(generate_packages(s.suite_id, c, a.arch_id, 'deb')) - #pool.apply_async(generate_packages, [s.suite_id, c, a.arch_id, 'deb'], callback=log) - logger.log(generate_packages(s.suite_id, c, a.arch_id, 'udeb')) - #pool.apply_async(generate_packages, [s.suite_id, c, a.arch_id, 'udeb'], callback=log) + pool.apply_async(generate_packages, [s.suite_id, c, a.arch_id, 'deb'], callback=parse_result) + pool.apply_async(generate_packages, [s.suite_id, c, a.arch_id, 'udeb'], callback=parse_result) + + pool.close() + pool.join() - #pool.close() - #pool.join() # this script doesn't change the database session.close() logger.close() + sys.exit(pool.output_status()) + if __name__ == '__main__': main()