From: Ansgar Burchardt Date: Sun, 12 Aug 2012 16:28:39 +0000 (+0200) Subject: dak/make_pkg_file_mapping.py: update for multi-archive changes X-Git-Url: https://git.decadent.org.uk/gitweb/?p=dak.git;a=commitdiff_plain;h=5d2df6d06988d55740f10912c3d837d950d078b5 dak/make_pkg_file_mapping.py: update for multi-archive changes --- diff --git a/dak/make_pkg_file_mapping.py b/dak/make_pkg_file_mapping.py index c457820f..17537670 100755 --- a/dak/make_pkg_file_mapping.py +++ b/dak/make_pkg_file_mapping.py @@ -31,11 +31,13 @@ and binary package version it has in a standard rfc2822-like format. ################################################################################ +import sys + from daklib.dbconn import * ################################################################################ -def build_mapping(): +def build_mapping(archive, session): # The ORDER BY is in the queries so that compression of the output works # better. It's the difference between a 9 megabyte bzip2 and a 2.5 mb # bzip2 file. @@ -44,10 +46,13 @@ def build_mapping(): SELECT source.source, source.version, - './pool/' || files.filename AS path + './pool/' || component.name || '/' || files.filename AS path FROM source JOIN dsc_files ON source.id=dsc_files.source JOIN files ON files.id=dsc_files.file + JOIN files_archive_map ON files.id = files_archive_map.file_id + JOIN component ON files_archive_map.component_id = component.id + WHERE files_archive_map.archive_id = :archive_id ORDER BY source, version """ @@ -56,26 +61,27 @@ def build_mapping(): source.source, source.version, architecture.arch_string AS arch, - './pool/' || files.filename AS path, + './pool/' || component.name || '/' || files.filename AS path, binaries.package, binaries.version AS bin_version FROM source JOIN binaries ON source.id=binaries.source JOIN files ON binaries.file=files.id + JOIN files_archive_map ON files.id = files_archive_map.file_id + JOIN component ON files_archive_map.component_id = component.id JOIN architecture ON architecture.id=binaries.architecture + WHERE files_archive_map.archive_id = :archive_id ORDER BY source, version, package, bin_version """ - session = DBConn().session() - - for row in session.execute(query_sources).fetchall(): + for row in session.execute(query_sources, {'archive_id': archive.archive_id}).fetchall(): (source, version, path) = row print "Path: %s"%path print "Source: %s"%source print "Source-Version: %s"%version print - for row in session.execute(query_binaries).fetchall(): + for row in session.execute(query_binaries, {'archive_id': archive.archive_id}).fetchall(): (source, version, arch, path, bin, binv) = row print "Path: %s"%path print "Source: %s"%source @@ -87,9 +93,21 @@ def build_mapping(): ################################################################################ +def usage(): + print "usage: dak make-pkg-file-mapping " + sys.exit(0) + +################################################################################ + def main(): - DBConn() - build_mapping() + if len(sys.argv) != 2: + usage() + + archive_name = sys.argv[1] + + session = DBConn().session() + archive = session.query(Archive).filter_by(archive_name=archive_name).one() + build_mapping(archive, session) #########################################################################################