From aa020af040e087c97eb4fa5ed85fda52bbc45217 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20P=C3=B6hn?= Date: Tue, 24 Dec 2019 08:35:27 +0100 Subject: [PATCH] srclibs: forward yml parsing error cause --- fdroidserver/metadata.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/fdroidserver/metadata.py b/fdroidserver/metadata.py index 52c00d85..d01736cf 100644 --- a/fdroidserver/metadata.py +++ b/fdroidserver/metadata.py @@ -42,12 +42,15 @@ srclibs = None warnings_action = None -def warn_or_exception(value): +def warn_or_exception(value, cause=None): '''output warning or Exception depending on -W''' if warnings_action == 'ignore': pass elif warnings_action == 'error': - raise MetaDataException(value) + if cause: + raise MetaDataException(value) from cause + else: + raise MetaDataException(value) else: logging.warning(value) @@ -763,14 +766,15 @@ def parse_yml_srclib(metadatapath): except yaml.error.YAMLError as e: warn_or_exception(_("Invalid srclib metadata: could not " "parse '{file}'" - .format(file=metadatapath))) + .format(file=metadatapath)), + e) return thisinfo for key in data.keys(): if key not in thisinfo.keys(): warn_or_exception(_("Invalid srclib metadata: unknown key " "'{key}' in '{file}'") - .format(key=key, file=metadatapath)) + .format(key=key, file=metadatapath)) return thisinfo else: if key == 'Subdir':