################################################################################
+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.
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
"""
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
################################################################################
+def usage():
+ print "usage: dak make-pkg-file-mapping <archive>"
+ 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)
#########################################################################################