releng r949 - trunk/tools/maintainer
- From: mr svn gnome org
- To: svn-commits-list gnome org
- Subject: releng r949 - trunk/tools/maintainer
- Date: Mon, 3 Mar 2008 10:10:30 +0000 (GMT)
Author: mr
Date: Mon Mar 3 10:10:30 2008
New Revision: 949
URL: http://svn.gnome.org/viewvc/releng?rev=949&view=rev
Log:
* Makefile: Include install location in usage help.
* maintainer.py: Patch from Claudio Saavedra to improve translator
information, now the list is sorted, is templatable, uses a more
common regular expression for committing with names of people that
have contributed and includes the last translator information from
the PO file.
Modified:
trunk/tools/maintainer/CONTRIBUTORS
trunk/tools/maintainer/ChangeLog
trunk/tools/maintainer/Makefile
trunk/tools/maintainer/maintainer.py
Modified: trunk/tools/maintainer/CONTRIBUTORS
==============================================================================
--- trunk/tools/maintainer/CONTRIBUTORS (original)
+++ trunk/tools/maintainer/CONTRIBUTORS Mon Mar 3 10:10:30 2008
@@ -1 +1,2 @@
-Xavier Claessens <xclaesse gmail com>
+Xavier Claessens
+Claudio Saavedra
Modified: trunk/tools/maintainer/Makefile
==============================================================================
--- trunk/tools/maintainer/Makefile (original)
+++ trunk/tools/maintainer/Makefile Mon Mar 3 10:10:30 2008
@@ -1,5 +1,5 @@
all:
- @echo "Use make install or make uninstall"
+ @echo "Use make install or make uninstall (to/from '$(HOME)/bin')"
scripts = maintainer.py announcer.py
Modified: trunk/tools/maintainer/maintainer.py
==============================================================================
--- trunk/tools/maintainer/maintainer.py (original)
+++ trunk/tools/maintainer/maintainer.py Mon Mar 3 10:10:30 2008
@@ -56,6 +56,9 @@
po_dir = 'po'
help_dir = 'help'
+# Translator information template
+translator_template = 'Updated $lang: $translator'
+
# Commands
vc_command = ''
vc_parameters = ''
@@ -429,6 +432,48 @@
return summary
+def get_last_translator(lang, dir):
+ exp = '"Last-Translator: (?P<name>.*?)( *< * *>)?\\\\n"\\n'
+ trans_pattern = re.compile(exp)
+
+ file = os.path.join (dir, lang + ".po")
+
+ if opts.debug:
+ print 'Trying to open PO file "%s"....' % (file)
+
+ try:
+ f = open(file, 'r')
+ except IOError, (errno, strerror):
+ # If this fails, we try to use the 'dir/lang/lang.po' for help PO files
+ file = os.path.join (dir, lang, lang + ".po")
+
+ if opts.debug:
+ print 'Trying to open PO file "%s"....' % (file)
+
+ try:
+ f = open(file, 'r')
+ except IOError, (errno, strerror):
+ return ''
+
+ translator = ''
+
+ line = f.readline()
+
+ while translator == '' and line != '':
+ match = trans_pattern.match (line)
+ if not match:
+ line = f.readline()
+ continue
+
+ translator = match.group ('name')
+
+ if translator != '':
+ translator = translator.strip()
+
+ f.close()
+
+ return translator
+
def get_translators(tag, dir):
get_package_info()
@@ -458,8 +503,8 @@
changelog_pattern = re.compile(exp, re.S | re.M)
# Pattern to match language and sponsored name for change, e.g.:
- # "en_GB.po: Updated by (Martyn Russell)"
- exp = '.*\* (.*/)?(?P<lang>.*).po: (.*\((?P<name>.*)\))?'
+ # "en_GB.po: Updated by Martyn Russell"
+ exp = '.*\* (.*/)?(?P<lang>.*).po: ((.*) by (?P<name>[^.]*)\.?)?'
lang_pattern = re.compile(exp, re.S | re.M)
if opts.debug:
@@ -493,6 +538,7 @@
match = changelog_pattern.match(line)
if match:
last_committer = match.group('name')
+ date = match.group('date')
continue
# Get bug fix details
@@ -506,14 +552,33 @@
if lang == '':
continue
+ # Get last translator from .po file
+ last_translator = get_last_translator (lang, dir)
+
+ if opts.debug:
+ print 'Found lang "%s" with last translator "%s"' % (lang, last_translator)
+
+ if last_translator != '':
+ if translators.has_key (lang):
+ if translators[lang].find (last_translator) == -1:
+ translators[lang] += ', ' + last_translator
+ else:
+ translators[lang] = last_translator
+
if name == None:
name = last_committer.strip()
+
+ if opts.debug:
+ print 'Found lang "%s" with last committer "%s" on "%s"' % (lang, name, date)
else:
name = name.replace('\n', '')
name = name.replace('\t', '')
name = name.replace('+', ' ')
name = name.strip()
+ if opts.debug:
+ print 'Found lang "%s" with last committer "%s" **' % (lang, name)
+
if translators.has_key(lang):
if translators[lang].find(name) > -1:
continue;
@@ -527,12 +592,15 @@
if opts.html:
summary += '<ul>'
- for lang in translators:
+ sorted_langs = translators.keys ()
+ sorted_langs.sort ()
+
+ for lang in sorted_langs:
if len(summary) > 0:
summary += '\n'
- text = 'Updated %s: %s' % (lang, translators[lang])
-
+ t = Template(translator_template)
+ text = t.substitute (translator = translators[lang], lang = lang)
if opts.html:
summary += '<li>%s</li>' % (text)
else:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]