1
0
mirror of https://gitlab.com/fdroid/fdroidserver.git synced 2024-07-14 21:10:09 +02:00

make parse_yaml_metadata ignore empty input

This commit is contained in:
Michael Pöhn 2018-08-08 01:26:46 +02:00
parent e83221eb03
commit 0d005ab83a

View File

@ -1075,25 +1075,24 @@ def parse_json_metadata(mf, app):
def parse_yaml_metadata(mf, app):
yamldata = yaml.load(mf, Loader=YamlLoader)
for field in yamldata:
if field not in yaml_app_fields:
warn_or_exception(_('Unrecognised app field: {fieldname}')
.format(fieldname=field))
if not yamldata.get('Builds', None):
warn_or_exception(_('Missing app field: {fieldname}')
.format(fieldname='Builds'))
for build in yamldata.get('Builds', []):
# put all build flag keywords into a set to avoid
# excessive looping action
build_flag_set = set()
for build_flag in build.keys():
build_flag_set.add(build_flag)
for build_flag in build_flag_set:
if build_flag not in build_flags:
warn_or_exception(_('Unrecognised build flag: {build_flag}')
.format(build_flag=build_flag))
if yamldata:
for field in yamldata:
if field not in yaml_app_fields:
warn_or_exception(_('Unrecognised app field: {fieldname}')
.format(fieldname=field))
if not yamldata.get('Builds', None):
warn_or_exception(_('Missing app field: {fieldname}')
.format(fieldname='Builds'))
for build in yamldata.get('Builds', []):
# put all build flag keywords into a set to avoid
# excessive looping action
build_flag_set = set()
for build_flag in build.keys():
build_flag_set.add(build_flag)
for build_flag in build_flag_set:
if build_flag not in build_flags:
warn_or_exception(_('Unrecognised build flag: {build_flag}')
.format(build_flag=build_flag))
app.update(yamldata)
return app