from daklib.config import Config
from daklib.dbconn import *
-from daklib.contents import BinaryContentsScanner, ContentsWriter
+from daklib.contents import BinaryContentsScanner, ContentsWriter, \
+ SourceContentsScanner
from daklib import daklog
from daklib import utils
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
-s, --suite={stable,testing,unstable,...}
only operate on specified suite names
+ -c, --component={main,contrib,non-free}
+ only operate on specified components
+
-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
"""
################################################################################
-def write_all(cnf, suite_names = [], force = None):
- Logger = daklog.Logger(cnf.Cnf, 'contents generate')
- ContentsWriter.write_all(Logger, suite_names, force)
+def write_all(cnf, suite_names = [], component_names = [], force = None):
+ Logger = daklog.Logger('contents generate')
+ ContentsWriter.write_all(Logger, suite_names, component_names, force)
Logger.close()
################################################################################
-def scan_all(cnf, limit):
- Logger = daklog.Logger(cnf.Cnf, 'contents scan')
+def binary_scan_all(cnf, limit):
+ Logger = daklog.Logger('contents scan-binary')
result = BinaryContentsScanner.scan_all(limit)
processed = '%(processed)d packages processed' % result
remaining = '%(remaining)d packages remaining' % result
################################################################################
+def source_scan_all(cnf, limit):
+ Logger = daklog.Logger('contents scan-source')
+ result = SourceContentsScanner.scan_all(limit)
+ processed = '%(processed)d packages processed' % result
+ remaining = '%(remaining)d packages remaining' % result
+ Logger.log([processed, remaining])
+ Logger.close()
+
+################################################################################
+
def main():
cnf = Config()
cnf['Contents::Options::Help'] = ''
cnf['Contents::Options::Suite'] = ''
+ cnf['Contents::Options::Component'] = ''
cnf['Contents::Options::Limit'] = ''
cnf['Contents::Options::Force'] = ''
- arguments = [('h', "help", 'Contents::Options::Help'),
- ('s', "suite", 'Contents::Options::Suite', "HasArg"),
- ('l', "limit", 'Contents::Options::Limit', "HasArg"),
- ('f', "force", 'Contents::Options::Force'),
+ arguments = [('h', "help", 'Contents::Options::Help'),
+ ('s', "suite", 'Contents::Options::Suite', "HasArg"),
+ ('c', "component", 'Contents::Options::Component', "HasArg"),
+ ('l', "limit", 'Contents::Options::Limit', "HasArg"),
+ ('f', "force", 'Contents::Options::Force'),
]
args = apt_pkg.ParseCommandLine(cnf.Cnf, arguments, sys.argv)
options = cnf.SubTree('Contents::Options')
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'])
+ suite_names = utils.split_args(options['Suite'])
+ component_names = utils.split_args(options['Component'])
force = bool(options['Force'])
if args[0] == 'generate':
- write_all(cnf, suite_names, force)
+ write_all(cnf, suite_names, component_names, force)
return
usage()