X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fcheck_archive.py;h=89c3dcbd82d690141e01bc2c05d981d8f5f99b72;hb=6cc75beccd14c9b39621cb5894d67cec24750405;hp=53db5ba7256aee3453f3f8ae0f8f6cb80e6b68d2;hpb=0966aa21080d4bb09fc70a67313219d64cb05ddf;p=dak.git diff --git a/dak/check_archive.py b/dak/check_archive.py index 53db5ba7..89c3dcbd 100755 --- a/dak/check_archive.py +++ b/dak/check_archive.py @@ -41,6 +41,7 @@ import apt_inst from daklib.dbconn import * from daklib import utils from daklib.config import Config +from daklib.dak_exceptions import InvalidDscError, ChangesUnicodeError, CantOpenError ################################################################################ @@ -150,16 +151,22 @@ def check_dscs(): count = 0 - for dsc_file in DBConn().session().query(DSCFile): - f = dsc_file.poolfile.fullpath + for src in DBConn().session().query(DBSource).order_by(DBSource.source, DBSource.version): + f = src.poolfile.fullpath try: utils.parse_changes(f, signing_rules=1, dsc_file=1) - except InvalidDscError, line: + except InvalidDscError: utils.warn("syntax error in .dsc file %s" % f) count += 1 except ChangesUnicodeError: utils.warn("found invalid dsc file (%s), not properly utf-8 encoded" % f) count += 1 + except CantOpenError: + utils.warn("missing dsc file (%s)" % f) + count += 1 + except Exception as e: + utils.warn("miscellaneous error parsing dsc file (%s): %s" % (f, str(e))) + count += 1 if count: utils.warn("Found %s invalid .dsc files." % (count)) @@ -417,7 +424,7 @@ def check_indices_files_exist(): Ensure files mentioned in Packages & Sources exist """ for suite in [ "stable", "testing", "unstable" ]: - for component in Cnf.ValueList("Suite::%s::Components" % (suite)): + for component in get_component_names(): architectures = get_suite_architectures(suite) for arch in [ i.arch_string.lower() for i in architectures ]: if arch == "source":