From: Ciaran Gultnieks Date: Tue, 26 Nov 2013 22:07:47 +0000 (+0000) Subject: Allow definition of index max age in repo config X-Git-Tag: 0.1~143 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=7cc21fe89afba4c64c758417000a46be9a8a1c38;p=fdroidserver.git Allow definition of index max age in repo config --- diff --git a/config.sample.py b/config.sample.py index 6de1fcca..712167b3 100644 --- a/config.sample.py +++ b/config.sample.py @@ -30,6 +30,13 @@ gradle_plugin = "0.6.+" # This corresponds to 72x72 pixels, i.e. mdpi icon_max_size = 72 +# Set the maximum age (in days) of an index that a client should accept from +# this repo. Setting it to 0 or not setting it at all disables this +# functionality. If you do set this to a non-zero value, you need to ensure +# that your index is updated much more frequently than the specified interval. +# The same policy is applied to the archive repo, if there is one. +repo_maxage = 0 + repo_url = "https://f-droid.org/repo" repo_name = "F-Droid" repo_icon = "fdroid-icon.png" diff --git a/fdroidserver/common.py b/fdroidserver/common.py index 6c8b65c6..8a2875e0 100644 --- a/fdroidserver/common.py +++ b/fdroidserver/common.py @@ -61,7 +61,8 @@ def read_config(opts, config_file='config.py'): 'update_stats': False, 'archive_older': 0, 'max_icon_size': 72, - 'stats_to_carbon': False + 'stats_to_carbon': False, + 'repo_maxage': 0 } if options.verbose: print "Reading %s..." % config_file diff --git a/fdroidserver/update.py b/fdroidserver/update.py index 86f103b1..84321a24 100644 --- a/fdroidserver/update.py +++ b/fdroidserver/update.py @@ -467,11 +467,15 @@ def make_index(apps, apks, repodir, archive, categories): repoel = doc.createElement("repo") if archive: repoel.setAttribute("name", config['archive_name']) + if config['repo_maxage'] != 0: + repoel.setAttribute("maxage", str(config['repo_maxage'])) repoel.setAttribute("icon", os.path.basename(config['archive_icon'])) repoel.setAttribute("url", config['archive_url']) addElement('description', config['archive_description'], doc, repoel) else: repoel.setAttribute("name", config['repo_name']) + if config['repo_maxage'] != 0: + repoel.setAttribute("maxage", str(config['repo_maxage'])) repoel.setAttribute("icon", os.path.basename(config['repo_icon'])) repoel.setAttribute("url", config['repo_url']) addElement('description', config['repo_description'], doc, repoel)