[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