[Python-modules-commits] r24122 - in tools (add-vcs-fields)
jwilk at users.alioth.debian.org
jwilk at users.alioth.debian.org
Sun May 5 15:58:16 UTC 2013
Date: Sunday, May 5, 2013 @ 15:58:14
Author: jwilk
Revision: 24122
Add an option to canonicalize Vcs-*.
Modified:
tools/add-vcs-fields
Modified: tools/add-vcs-fields
===================================================================
--- tools/add-vcs-fields 2013-05-05 14:30:55 UTC (rev 24121)
+++ tools/add-vcs-fields 2013-05-05 15:58:14 UTC (rev 24122)
@@ -8,16 +8,24 @@
import argparse
import os
+import re
+import subprocess as ipc
import sys
-import subprocess as ipc
import debian.deb822 as deb822
TEAMS = ['python-modules', 'python-apps']
+def canonicalize(s):
+ orig_s = s
+ s = re.sub('svn://svn[.]debian[.]org/(?:svn/)?(.*[^/])/?', r'svn://anonscm.debian.org/\1/', s)
+ s = re.sub('http://svn[.]debian[.]org/(?:viewsvn|viewvc|wsvn|websvn)/(.*[^/])/?', r'http://anonscm.debian.org/viewvc/\1/', s)
+ return s
+
def main():
parser = argparse.ArgumentParser()
parser.add_argument('--team', choices=TEAMS)
+ parser.add_argument('--canonicalize', action='store_true')
parser.add_argument('paths', metavar='PACKAGE-DIRECTORY', nargs='+')
options = parser.parse_args()
for path in options.paths:
@@ -38,23 +46,32 @@
first, tail = contents.split('\n\n', 1)
first = deb822.Deb822(first.splitlines())
source = first['Source']
- dirty = False
+ messages = set()
vcs_svn = first.get('Vcs-Svn')
vcs_browser = first.get('Vcs-Browser')
if not vcs_svn:
first['Vcs-Svn'] = 'svn://anonscm.debian.org/{team}/packages/{source}/trunk/'.format(team=team, source=source)
- dirty = True
+ messages.add('Add Vcs-* fields.')
+ elif options.canonicalize:
+ first['Vcs-Svn'] = canonicalize(vcs_svn)
+ if first['Vcs-Svn'] != vcs_svn:
+ messages.add('Use canonical URIs for Vcs-* fields.')
if not vcs_browser:
first['Vcs-Browser'] = 'http://anonscm.debian.org/viewvc/{team}/packages/{source}/trunk/'.format(team=team, source=source)
- dirty = True
- if not dirty:
+ messages.add('Add Vcs-* fields.')
+ elif options.canonicalize:
+ first['Vcs-Browser'] = canonicalize(vcs_browser)
+ if first['Vcs-Browser'] != vcs_browser:
+ messages.add('Use canonical URIs for Vcs-* fields.')
+ if not messages:
continue
with open('{base}/debian/control'.format(base=path), 'w') as file:
print >>file, unicode(first).encode('UTF-8')
print >>file, tail,
def cd(path=path):
os.chdir(path)
- ipc.check_call(['dch', '--release-heuristic', 'changelog', 'Add Vcs-* fields.'], preexec_fn=cd)
+ for message in sorted(messages):
+ ipc.check_call(['dch', '--release-heuristic', 'changelog', message], preexec_fn=cd)
if __name__ == '__main__':
main()
More information about the Python-modules-commits
mailing list