From cd202e59b1e170e04e50019507f85350b8451b6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Fri, 11 Sep 2015 18:19:51 -0700 Subject: [PATCH] Ensure that builds are always sorted when writing This might not be true if builds are appended by e.g. checkupdates --auto. This ensures that we sort them again before writing. --- fdroidserver/metadata.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/fdroidserver/metadata.py b/fdroidserver/metadata.py index 2afb590b..b6f5911d 100644 --- a/fdroidserver/metadata.py +++ b/fdroidserver/metadata.py @@ -602,6 +602,10 @@ def get_default_app_info_list(apps, metadatapath=None): return appid, thisinfo +def sorted_builds(builds): + return sorted(builds, key=lambda build: int(build['vercode'])) + + def post_metadata_parse(thisinfo): supported_metadata = app_defaults.keys() + ['comments', 'builds', 'id', 'metadatapath'] @@ -663,7 +667,7 @@ def post_metadata_parse(thisinfo): for build in thisinfo['builds']: fill_build_defaults(build) - thisinfo['builds'] = sorted(thisinfo['builds'], key=lambda build: int(build['vercode'])) + thisinfo['builds'] = sorted_builds(thisinfo['builds']) # Parse metadata for a single application. @@ -1082,7 +1086,7 @@ def write_metadata(dest, app): if app['Binaries']: writefield('Binaries') mf.write('\n') - for build in app['builds']: + for build in sorted_builds(app['builds']): if build['version'] == "Ignore": continue