[Pkg-mozext-commits] [adblock-plus] 245/464: Added support for reading additional contributors from an XML file and improved sort order for translators
David Prévot
taffit at moszumanska.debian.org
Tue Jul 22 20:44:21 UTC 2014
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch master
in repository adblock-plus.
commit 3302425eb4dc6d55a7c95b0bec1e26e61900aff8
Author: Wladimir Palant <trev at adblockplus.org>
Date: Fri Jun 15 12:12:33 2012 +0200
Added support for reading additional contributors from an XML file and improved sort order for translators
---
install.rdf.tmpl | 6 ++----
packager.py | 35 ++++++++++++++++++++++++++++++-----
2 files changed, 32 insertions(+), 9 deletions(-)
diff --git a/install.rdf.tmpl b/install.rdf.tmpl
index ff15bd1..5b29402 100644
--- a/install.rdf.tmpl
+++ b/install.rdf.tmpl
@@ -7,11 +7,9 @@
{%- macro meta() -%}
<em:creator>{{metadata.get('general', 'author')}}</em:creator>
-{%- if metadata.has_section('contributors') -%}
-{%- for option in metadata.options('contributors')|sort -%}
-<em:contributor>{{metadata.get('contributors', option)}}</em:contributor>
+{%- for contributor in contributors -%}
+<em:contributor>{{contributor}}</em:contributor>
{%- endfor -%}
-{%- endif -%}
{%- for translator in localeMetadata|translators -%}
<em:translator>{{translator}}</em:translator>
diff --git a/packager.py b/packager.py
index 1b4e279..4b92455 100644
--- a/packager.py
+++ b/packager.py
@@ -8,6 +8,7 @@ import os, sys, re, subprocess, jinja2, buildtools, codecs, hashlib, base64, shu
from ConfigParser import SafeConfigParser
from StringIO import StringIO
from zipfile import ZipFile, ZIP_STORED, ZIP_DEFLATED
+import xml.dom.minidom as minidom
import buildtools.localeTools as localeTools
KNOWN_APPS = {
@@ -134,17 +135,38 @@ def readLocaleMetadata(baseDir, locales):
result[locale] = {}
return result
+def getContributors(baseDir, metadata):
+ main = []
+ additional = set()
+ if metadata.has_section('contributors'):
+ options = metadata.options('contributors')
+ options.sort()
+ for option in options:
+ value = metadata.get('contributors', option)
+ if re.search(r'\D', option):
+ match = re.search(r'^\s*(\S+)\s+//([^/\s]+)/@(\S+)\s*$', value)
+ if not match:
+ print >>sys.stderr, 'Warning: unrecognized contributor location "%s"\n' % value
+ continue
+ dom = minidom.parse(os.path.join(baseDir, match.group(1)))
+ tags = dom.getElementsByTagName(match.group(2))
+ for tag in tags:
+ if tag.hasAttribute(match.group(3)):
+ for name in re.split(r'\s*,\s*', tag.getAttribute(match.group(3))):
+ additional.add(name)
+ else:
+ main.append(value)
+ return main + sorted(additional, key=unicode.lower)
+
def getTranslators(localeMetadata):
- translators = {}
+ translators = set()
for locale in localeMetadata.itervalues():
if 'translator' in locale:
for translator in locale['translator'].split(','):
translator = translator.strip()
if translator:
- translators[translator] = True
- result = translators.keys()
- result.sort()
- return result
+ translators.add(translator)
+ return sorted(translators, key=unicode.lower)
def createManifest(baseDir, params):
global KNOWN_APPS, defaultLocale
@@ -333,6 +355,8 @@ def createBuild(baseDir, outFile=None, locales=None, buildNum=None, releaseBuild
if outFile == None:
outFile = getDefaultFileName(baseDir, metadata, version)
+ contributors = getContributors(baseDir, metadata)
+
params = {
'locales': locales,
'releaseBuild': releaseBuild,
@@ -340,6 +364,7 @@ def createBuild(baseDir, outFile=None, locales=None, buildNum=None, releaseBuild
'version': version.encode('utf-8'),
'metadata': metadata,
'limitMetadata': limitMetadata,
+ 'contributors': contributors,
}
files = {}
files['install.rdf'] = createManifest(baseDir, params)
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/adblock-plus.git
More information about the Pkg-mozext-commits
mailing list