X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fcontents.py;h=ee904b2a2467e4f0d100e03e5dca3396e3587b14;hb=657d989f7e2a9409c29da41d42fda85bcf8a64e2;hp=5c33afa2f67f333e4ff1f3ee2b74e697338a4d5f;hpb=dfa2f059b345fcd07a64f19659ab2c459e960ce1;p=dak.git diff --git a/dak/contents.py b/dak/contents.py index 5c33afa2..ee904b2a 100755 --- a/dak/contents.py +++ b/dak/contents.py @@ -40,7 +40,8 @@ import apt_pkg from daklib.config import Config from daklib.dbconn import * -from daklib.contents import ContentsScanner, ContentsWriter +from daklib.contents import BinaryContentsScanner, ContentsWriter, \ + SourceContentsScanner from daklib import daklog from daklib import utils @@ -53,8 +54,13 @@ SUBCOMMANDS generate generate Contents-$arch.gz files - scan - scan the debs in the existing pool and load contents into the bin_contents table + scan-source + scan the source packages in the existing pool and load contents into + the src_contents table + + scan-binary + scan the (u)debs in the existing pool and load contents into the + bin_contents table OPTIONS -h, --help @@ -67,7 +73,7 @@ OPTIONS for generate -f, --force write Contents files for suites marked as untouchable, too -OPTIONS for scan +OPTIONS for scan-source and scan-binary -l, --limit=NUMBER maximum number of packages to scan """ @@ -77,29 +83,24 @@ OPTIONS for scan def write_all(cnf, suite_names = [], force = None): Logger = daklog.Logger(cnf.Cnf, 'contents generate') - ContentsWriter.write_all(suite_names, force) + ContentsWriter.write_all(Logger, suite_names, force) Logger.close() ################################################################################ -def write_helper(suite_name, argv): - session = DBConn().session() - suite = get_suite(suite_name, session) - architecture = get_architecture(argv[0], session) - debtype = get_override_type(argv[1], session) - if len(argv) == 3: - component = get_component(argv[2], session) - else: - component = None - session.rollback() - ContentsWriter(suite, architecture, debtype, component).write_file() - session.close() +def binary_scan_all(cnf, limit): + Logger = daklog.Logger(cnf.Cnf, 'contents scan-binary') + result = BinaryContentsScanner.scan_all(limit) + processed = '%(processed)d packages processed' % result + remaining = '%(remaining)d packages remaining' % result + Logger.log([processed, remaining]) + Logger.close() ################################################################################ -def scan_all(cnf, limit): - Logger = daklog.Logger(cnf.Cnf, 'contents scan') - result = ContentsScanner.scan_all(limit) +def source_scan_all(cnf, limit): + Logger = daklog.Logger(cnf.Cnf, 'contents scan-source') + result = SourceContentsScanner.scan_all(limit) processed = '%(processed)d packages processed' % result remaining = '%(remaining)d packages remaining' % result Logger.log([processed, remaining]) @@ -121,15 +122,19 @@ def main(): args = apt_pkg.ParseCommandLine(cnf.Cnf, arguments, sys.argv) options = cnf.SubTree('Contents::Options') - if (len(args) < 1) or options['Help']: + if (len(args) != 1) or options['Help']: usage() limit = None if len(options['Limit']) > 0: limit = int(options['Limit']) - if args[0] == 'scan': - scan_all(cnf, limit) + if args[0] == 'scan-source': + source_scan_all(cnf, limit) + return + + if args[0] == 'scan-binary': + binary_scan_all(cnf, limit) return suite_names = utils.split_args(options['Suite']) @@ -140,10 +145,6 @@ def main(): write_all(cnf, suite_names, force) return - if args[0] == 'generate_helper': - write_helper(suite_names[0], args[1:]) - return - usage()