Skip to content
This repository has been archived by the owner on Feb 13, 2020. It is now read-only.

Commit

Permalink
fetching versions.cfg file through HTTP
Browse files Browse the repository at this point in the history
  • Loading branch information
zopyx committed Apr 23, 2009
1 parent fe65d00 commit 812bd61
Showing 1 changed file with 38 additions and 16 deletions.
54 changes: 38 additions & 16 deletions zope/z2release/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,27 @@
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

# packages containing upper-case letters
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):
Expand Down Expand Up @@ -42,22 +50,36 @@ def write_index(package, version):
print >>fp, '</body></html>'
fp.close()

CP = ConfigParser()
CP.read(['versions.cfg'])
def main():

global server

tag = sys.argv[1]
dirname = sys.argv[2]

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)

CP = ConfigParser()
CP.read(tmp_version_file)

server = Server('http://pypi.python.org/pypi')
links = list()
dirname = sys.argv[1]
server = Server('http://pypi.python.org/pypi')
links = list()

write_index('Zope2', '2.12.0a3')
write_index('Zope2', '2.12.0a3', dirname)
for package in CP.options('versions'):

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)

# 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)
if __name__ == '__main__':
main()

0 comments on commit 812bd61

Please sign in to comment.