Index: sitescripts/extensions/bin/updateUpdateManifests.py |
=================================================================== |
new file mode 100644 |
--- /dev/null |
+++ b/sitescripts/extensions/bin/updateUpdateManifests.py |
@@ -0,0 +1,64 @@ |
+# coding: utf-8 |
+ |
+# This file is part of the Adblock Plus web scripts, |
+# Copyright (C) 2006-2014 Eyeo GmbH |
+# |
+# Adblock Plus is free software: you can redistribute it and/or modify |
+# it under the terms of the GNU General Public License version 3 as |
+# published by the Free Software Foundation. |
+# |
+# Adblock Plus is distributed in the hope that it will be useful, |
+# but WITHOUT ANY WARRANTY; without even the implied warranty of |
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
+# GNU General Public License for more details. |
+# |
+# You should have received a copy of the GNU General Public License |
+# along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. |
+ |
+""" |
+Update update manifests |
Wladimir Palant
2014/07/22 11:24:26
Generate update manifests?
Felix Dahlke
2014/07/22 12:01:11
Done.
|
+======================= |
+ |
+ This script generates update manifests for all extensions and apps |
+""" |
+ |
+from ConfigParser import SafeConfigParser |
+from sitescripts.extensions.utils import (Configuration, getDownloadLinks, |
+ readMetadata) |
+from sitescripts.utils import get_config, get_template |
+ |
+def writeUpdateManifest(links): |
Felix Dahlke
2014/07/22 08:11:11
This hasn't been changed, just moved.
Since I kep
Wladimir Palant
2014/07/22 11:24:26
Quite a few more actually: elemhidehelper, abpcust
Felix Dahlke
2014/07/22 12:01:11
It doesn't look to me like we're generating update
Wladimir Palant
2014/07/22 18:41:22
We do, see https://adblockplus.org/update.rdf. Ext
|
+ """ |
+ writes an update manifest for all extensions and Android apps |
+ """ |
+ |
+ extensions = {'gecko': [], 'android': [], 'safari': []} |
+ for repo in Configuration.getRepositoryConfigurations(): |
+ if repo.type not in extensions or not links.has_section(repo.repositoryName): |
+ continue |
+ data = readMetadata(repo, links.get(repo.repositoryName, 'version')) |
+ data['updateURL'] = links.get(repo.repositoryName, 'downloadURL') |
+ if data['updateURL'].startswith(repo.downloadsURL): |
+ data['updateURL'] += "?update" |
+ extensions[repo.type].append(data) |
+ |
+ if len(extensions['android']) > 1: |
+ print >>sys.stderr, 'Warning: more than one Android app defined, update manifest only works for one' |
+ |
+ for repoType in extensions.iterkeys(): |
+ manifestPath = get_config().get('extensions', '%sUpdateManifestPath' % repoType) |
+ template = get_template(get_config().get('extensions', '%sUpdateManifest' % repoType)) |
+ print extensions[repoType] |
Wladimir Palant
2014/07/22 11:24:26
Debug code?
Felix Dahlke
2014/07/22 12:01:11
Ouch, done.
|
+ template.stream({'extensions': extensions[repoType]}).dump(manifestPath) |
+ |
+def updateUpdateManifests(): |
+ """ |
+ updates all update manifests with the current versions |
+ """ |
+ |
+ parser = SafeConfigParser() |
+ getDownloadLinks(parser) |
+ writeUpdateManifest(parser) |
+ |
+if __name__ == "__main__": |
+ updateUpdateManifests() |