[Checkins] SVN: zope.z2release/trunk/zope/z2release/cli.py fetching versions.cfg file through HTTP
Andreas Jung
andreas at andreas-jung.com
Thu Apr 23 12:00:03 EDT 2009
Log message for revision 99421:
fetching versions.cfg file through HTTP
Changed:
U zope.z2release/trunk/zope/z2release/cli.py
-=-
Modified: zope.z2release/trunk/zope/z2release/cli.py
===================================================================
--- zope.z2release/trunk/zope/z2release/cli.py 2009-04-23 15:50:25 UTC (rev 99420)
+++ zope.z2release/trunk/zope/z2release/cli.py 2009-04-23 16:00:02 UTC (rev 99421)
@@ -2,11 +2,19 @@
Generate an index file based on the version.cfg file of Zope 2
in order to provide a version specific index page generated to be used
in combination with easy_install -i <some_url>
+
+Usage:
+
+cli.py tags/2.12.0a3 /tmp/index/2.12.0a3
+cli.py branches/2.12 tmp/index/2.12
+
"""
import os
import sys
import urlparse
+import urllib
+import tempfile
from xmlrpclib import Server
from ConfigParser import RawConfigParser as ConfigParser
@@ -14,7 +22,7 @@
upper_names = ('ClientForm', 'RestrictedPython', 'ZConfig', 'ZODB3', 'zLOG',
'Acquisition', 'DateTime', 'ExtensionClass', 'Persistence')
-def write_index(package, version):
+def write_index(package, version, dirname):
print >>sys.stderr, 'Package %s==%s' % (package, version)
dest_dir = os.path.join(dirname, package)
if not os.path.exists(dest_dir):
@@ -42,22 +50,36 @@
print >>fp, '</body></html>'
fp.close()
-CP = ConfigParser()
-CP.read(['versions.cfg'])
+def main():
-server = Server('http://pypi.python.org/pypi')
-links = list()
-dirname = sys.argv[1]
+ global server
-write_index('Zope2', '2.12.0a3')
+ tag = sys.argv[1]
+ dirname = sys.argv[2]
-for package in CP.options('versions'):
+ versions_url = 'http://svn.zope.org/*checkout*/Zope/%s/versions.cfg' % tag
+ print >>sys.stderr, 'Fetching %s' % versions_url
+ data = urllib.urlopen(versions_url).read()
+ tmp_version_file = tempfile.mktemp()
+ file(tmp_version_file, 'w').write(data)
- # options() returns all options in lowercase but
- # we must preserve the case for package names
- for name in upper_names:
- if name.lower() == package:
- package = name
- break
- version = CP.get('versions', package)
- write_index(package, version)
+ CP = ConfigParser()
+ CP.read(tmp_version_file)
+
+ server = Server('http://pypi.python.org/pypi')
+ links = list()
+
+ write_index('Zope2', '2.12.0a3', dirname)
+ for package in CP.options('versions'):
+
+ # options() returns all options in lowercase but
+ # we must preserve the case for package names
+ for name in upper_names:
+ if name.lower() == package:
+ package = name
+ break
+ version = CP.get('versions', package)
+ write_index(package, version, dirname)
+
+if __name__ == '__main__':
+ main()
More information about the Checkins
mailing list