diff --git a/fdroidserver/metadata.py b/fdroidserver/metadata.py index a4c6bf00..56931fbe 100644 --- a/fdroidserver/metadata.py +++ b/fdroidserver/metadata.py @@ -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