[Checkins] SVN: zc.mirrorcheeseshopslashsimple/trunk/ * Created a
simple script to generate a buildout.cfg file from the
Stephan Richter
srichter at cosmos.phy.tufts.edu
Fri Oct 5 17:34:42 EDT 2007
Log message for revision 80669:
* Created a simple script to generate a buildout.cfg file from the
``controlled-pacakges.cfg``.
* Provided a sample ``controlled-packages.cfg`` file.
* Fixed a statement modified for testing.
Changed:
_U zc.mirrorcheeseshopslashsimple/trunk/
U zc.mirrorcheeseshopslashsimple/trunk/setup.py
_U zc.mirrorcheeseshopslashsimple/trunk/src/
A zc.mirrorcheeseshopslashsimple/trunk/src/zc/buildout.cfg.in
A zc.mirrorcheeseshopslashsimple/trunk/src/zc/controlled-packages.cfg.sample
U zc.mirrorcheeseshopslashsimple/trunk/src/zc/mirrorcheeseshopslashsimple.py
-=-
Property changes on: zc.mirrorcheeseshopslashsimple/trunk
___________________________________________________________________
Name: svn:ignore
+ develop-eggs
bin
parts
mirror
.installed.cfg
Modified: zc.mirrorcheeseshopslashsimple/trunk/setup.py
===================================================================
--- zc.mirrorcheeseshopslashsimple/trunk/setup.py 2007-10-05 20:46:41 UTC (rev 80668)
+++ zc.mirrorcheeseshopslashsimple/trunk/setup.py 2007-10-05 21:34:41 UTC (rev 80669)
@@ -7,5 +7,6 @@
install_requires = ['zc.lockfile'],
entry_points = dict(console_scripts=[
'update-simple-mirror = zc.mirrorcheeseshopslashsimple:update',
+ 'generate-buildout = zc.mirrorcheeseshopslashsimple:generatebuildout',
])
)
Property changes on: zc.mirrorcheeseshopslashsimple/trunk/src
___________________________________________________________________
Name: svn:ignore
+ zc.mirrorcheeseshopslashsimple.egg-info
Added: zc.mirrorcheeseshopslashsimple/trunk/src/zc/buildout.cfg.in
===================================================================
--- zc.mirrorcheeseshopslashsimple/trunk/src/zc/buildout.cfg.in (rev 0)
+++ zc.mirrorcheeseshopslashsimple/trunk/src/zc/buildout.cfg.in 2007-10-05 21:34:41 UTC (rev 80669)
@@ -0,0 +1,11 @@
+[buildout]
+parts = test
+index = %(index_url)s
+versions = versions
+
+[test]
+recipe = zc.recipe.testrunner
+eggs = %(tested-packages)s
+
+[versions]
+%(versions)s
Added: zc.mirrorcheeseshopslashsimple/trunk/src/zc/controlled-packages.cfg.sample
===================================================================
--- zc.mirrorcheeseshopslashsimple/trunk/src/zc/controlled-packages.cfg.sample (rev 0)
+++ zc.mirrorcheeseshopslashsimple/trunk/src/zc/controlled-packages.cfg.sample 2007-10-05 21:34:41 UTC (rev 80669)
@@ -0,0 +1,14 @@
+[DEFAULT]
+tested=true
+
+[zope.component]
+versions = 3.4.0
+
+[zope.interface]
+versions = 3.4.0
+ 3.4.1
+ 3.4.2
+
+[zope.event]
+versions = 3.5.0
+tested=false
Modified: zc.mirrorcheeseshopslashsimple/trunk/src/zc/mirrorcheeseshopslashsimple.py
===================================================================
--- zc.mirrorcheeseshopslashsimple/trunk/src/zc/mirrorcheeseshopslashsimple.py 2007-10-05 20:46:41 UTC (rev 80668)
+++ zc.mirrorcheeseshopslashsimple/trunk/src/zc/mirrorcheeseshopslashsimple.py 2007-10-05 21:34:41 UTC (rev 80669)
@@ -19,10 +19,20 @@
lock_file_path = 'pypy-poll-access.lock'
poll_time_path = 'pypy-poll-timestamp'
controlled_packages_path = 'controlled-packages.cfg'
+index_base_url = 'http://download.zope.org/'
-repos = None
simple = "http://cheeseshop.python.org/simple/"
+def get_dest_dir(args=None):
+ if args is None:
+ args = sys.argv[1:]
+
+ if len(args) != 1:
+ print "Usage: update dest"
+ sys.exit(1)
+
+ return os.path.abspath(args[0])
+
def get_page(dest, package, force=False):
try:
pdest = os.path.join(dest, package)
@@ -85,15 +95,9 @@
os.rename(dest+'t', dest)
def update(args=None):
- if args is None:
- args = sys.argv[1:]
- if len(args) != 1:
- print "Usage: update dest"
- sys.exit(1)
+ dest = get_dest_dir(args)
- dest = args[0]
-
lock = zc.lockfile.LockFile(os.path.join(dest, lock_file_path))
try:
ptp = os.path.join(dest, poll_time_path)
@@ -107,7 +111,7 @@
packages = sorted((
(timestamp, name)
for (name, version, timestamp, action)
- in server.changelog(last-3600*24)
+ in server.changelog(last)
))
packages = dict((
(name, timestamp)
@@ -153,3 +157,34 @@
finally:
lock.close()
+
+def generatebuildout(args=None):
+ dest = get_dest_dir(args)
+ # Create the link to the package index.
+ index_url = index_base_url + os.path.split(dest)[-1]
+
+ # Extract a list of all packages that need to be tested and record the
+ # version to be tested. By default this version is the last available one.
+ cpath = os.path.join(dest, controlled_packages_path)
+ config = ConfigParser.RawConfigParser()
+ config.read(cpath)
+ packages = []
+ for section in config.sections():
+ packages.append((
+ section,
+ config.get(section, 'versions').split()[-1],
+ config.getboolean(section, 'tested')
+ ))
+
+ # Create the data dictionary
+ data = {
+ 'index_url': index_url,
+ 'tested-packages': '\n '.join([p for (p, v, t) in packages if t]),
+ 'versions': '\n'.join([p + ' = ' + v for (p, v, t) in packages])
+ }
+
+ # Write a new buildout.cfg file
+ buildoutcfg_path = os.path.join(dest, 'buildout.cfg')
+ templ_path = os.path.join(os.path.dirname(__file__), 'buildout.cfg.in')
+ open(buildoutcfg_path, 'w').write(
+ open(templ_path, 'r').read() %data)
More information about the Checkins
mailing list