[Checkins] SVN: grokproject/branches/maurits-using-eggbasket/ Use
the new z3c.recipe.eggbasket recipe.
Maurits van Rees
m.van.rees at zestsoftware.nl
Mon May 5 20:05:29 EDT 2008
Log message for revision 86480:
Use the new z3c.recipe.eggbasket recipe.
Changed:
U grokproject/branches/maurits-using-eggbasket/CHANGES.txt
U grokproject/branches/maurits-using-eggbasket/grokproject/template/buildout.cfg_tmpl
U grokproject/branches/maurits-using-eggbasket/grokproject/templates.py
U grokproject/branches/maurits-using-eggbasket/grokproject/utils.py
U grokproject/branches/maurits-using-eggbasket/setup.py
-=-
Modified: grokproject/branches/maurits-using-eggbasket/CHANGES.txt
===================================================================
--- grokproject/branches/maurits-using-eggbasket/CHANGES.txt 2008-05-06 00:00:52 UTC (rev 86479)
+++ grokproject/branches/maurits-using-eggbasket/CHANGES.txt 2008-05-06 00:05:29 UTC (rev 86480)
@@ -1,6 +1,12 @@
Changes
=======
+maurits-using-eggbasket branch
+------------------------------
+
+* Use the new z3c.recipe.eggbasket recipe.
+
+
0.8 (unreleased)
------------------
Modified: grokproject/branches/maurits-using-eggbasket/grokproject/template/buildout.cfg_tmpl
===================================================================
--- grokproject/branches/maurits-using-eggbasket/grokproject/template/buildout.cfg_tmpl 2008-05-06 00:00:52 UTC (rev 86479)
+++ grokproject/branches/maurits-using-eggbasket/grokproject/template/buildout.cfg_tmpl 2008-05-06 00:05:29 UTC (rev 86480)
@@ -1,6 +1,6 @@
[buildout]
develop = .
-parts = app data zopectl i18n test
+parts = eggbasket app data zopectl i18n test
newest = ${newest}
extends = versions.cfg
find-links = http://download.zope.org/distribution
@@ -10,6 +10,11 @@
${eggs_dir}
versions = versions
+[eggbasket]
+recipe = z3c.recipe.eggbasket
+eggs = grok
+url = http://grok.zope.org/releaseinfo/grok-eggs-0.12.tgz
+
[app]
recipe = zc.zope3recipes>=0.5.3:application
eggs = ${egg}
Modified: grokproject/branches/maurits-using-eggbasket/grokproject/templates.py
===================================================================
--- grokproject/branches/maurits-using-eggbasket/grokproject/templates.py 2008-05-06 00:00:52 UTC (rev 86479)
+++ grokproject/branches/maurits-using-eggbasket/grokproject/templates.py 2008-05-06 00:05:29 UTC (rev 86480)
@@ -2,25 +2,20 @@
import os
import urllib
import urlparse
-import shutil
-import tempfile
import xml.sax.saxutils
-import tarfile
from paste.script import templates
from paste.script.templates import NoDefault
from grokproject.utils import run_buildout
-from grokproject.utils import get_buildout_default_eggs_dir
from grokproject.utils import ask_var
from grokproject.utils import get_boolean_value_for_option
from grokproject.utils import create_buildout_default_file
from grokproject.utils import exist_buildout_default_file
from grokproject.utils import required_grok_version
-from grokproject.utils import is_grok_installed
-from grokproject.utils import install_grok
-GROK_RELEASE_URL = 'http://grok.zope.org/releaseinfo/'
+GROK_RELEASE_URL = 'http://grok.zope.org/releaseinfo/current'
BOOTSTRAP = 'http://svn.zope.org/*checkout*/zc.buildout/trunk/bootstrap/bootstrap.py'
+
class GrokProject(templates.Template):
_template_dir = 'template'
summary = "A grok project"
@@ -69,12 +64,13 @@
vars['app_class_name'] = vars['project'].capitalize()
# Handling the version.cfg file.
- current_info_url = GROK_RELEASE_URL + 'current'
+ current_info_url = GROK_RELEASE_URL
info = urllib.urlopen(current_info_url).read().strip()
version_info_url = urlparse.urljoin(current_info_url, info)
vars['version_info_url'] = version_info_url
version_info_file_contents = urllib.urlopen(version_info_url).read()
vars['version_info_file_contents'] = version_info_file_contents
+ vars['grokversion'] = required_grok_version(version_info_file_contents)
# Handling the bootstrap.py file.
bootstrap_contents = urllib.urlopen(BOOTSTRAP).read()
@@ -99,43 +95,4 @@
if not vars['run_buildout']:
return
os.chdir(vars['project'])
- eggs_dir = vars.get('explicit_eggs_dir',
- get_buildout_default_eggs_dir())
- if not os.path.isdir(eggs_dir):
- os.mkdir(eggs_dir)
-
- version = required_grok_version(vars['version_info_file_contents'])
- if not is_grok_installed(target_dir=eggs_dir, version=version):
- print "Grok is not installed. A grok tarball will be downloaded."
-
- tarball_name = 'grok-eggs-%s.tgz' % version
- url = GROK_RELEASE_URL + tarball_name
- print "Downloading %s ..." % url
-
- try:
- extraction_dir = tempfile.mkdtemp()
- filenum, temp_tarball_name = tempfile.mkstemp()
- tarball = open(temp_tarball_name, 'w')
- tarball.write(urllib.urlopen(url).read())
- tarball.close()
- print "Finished downloading."
- print "Installing eggs to %s ..." % eggs_dir
-
- tf = tarfile.open(temp_tarball_name,
- 'r:gz')
- links = []
- for name in tf.getnames():
- tf.extract(name, extraction_dir)
- links.append(os.path.join(extraction_dir, name))
- tf.close()
-
- result = install_grok(target_dir=eggs_dir, version=version,
- links=links)
- if result is False:
- print "Failed to install Grok with the tar ball."
- print "Continuing with buildout instead."
- finally:
- shutil.rmtree(extraction_dir)
- os.unlink(temp_tarball_name)
-
run_buildout(command.options.verbose)
Modified: grokproject/branches/maurits-using-eggbasket/grokproject/utils.py
===================================================================
--- grokproject/branches/maurits-using-eggbasket/grokproject/utils.py 2008-05-06 00:00:52 UTC (rev 86479)
+++ grokproject/branches/maurits-using-eggbasket/grokproject/utils.py 2008-05-06 00:05:29 UTC (rev 86480)
@@ -89,6 +89,12 @@
return os.path.isfile(default_cfg)
+def required_grok_version(versionfile):
+ for line in versionfile.split('\n'):
+ if line.startswith('grok ='):
+ return line.split(' ')[-1]
+
+
def run_buildout(verbose=False):
"""Run a buildout.
@@ -130,38 +136,3 @@
print "Invoking zc.buildout..."
zc.buildout.buildout.main(['-q', 'install'])
-
-
-def required_grok_version(versionfile):
- for line in versionfile.split('\n'):
- if line.startswith('grok ='):
- return line.split(' ')[-1]
-
-
-def install_grok(target_dir=None, version=None, links=None):
- from zc.buildout.easy_install import install
- from zc.buildout.easy_install import MissingDistribution
- try:
- empty_index = tempfile.mkdtemp()
-
- try:
- install(['grok'], target_dir, newest=False,
- versions={'grok': version}, links=links,
- index='file://' + empty_index)
- except MissingDistribution:
- result = False
- else:
- result = True
- finally:
- shutil.rmtree(empty_index)
- return result
-
-
-def is_grok_installed(target_dir=None, version=None):
- # Check if the required grok version is installed. We do this
- # by trying to install grok in the target dir and letting
- # easy_install only look inside that same eggs dir while doing
- # that.
- result = install_grok(target_dir=target_dir, version=version,
- links=[target_dir])
- return result
Modified: grokproject/branches/maurits-using-eggbasket/setup.py
===================================================================
--- grokproject/branches/maurits-using-eggbasket/setup.py 2008-05-06 00:00:52 UTC (rev 86479)
+++ grokproject/branches/maurits-using-eggbasket/setup.py 2008-05-06 00:05:29 UTC (rev 86480)
@@ -20,8 +20,8 @@
packages=find_packages(),
include_package_data=True,
zip_safe=False,
- install_requires=['PasteScript>=1.6', 'zc.buildout'],
- tests_require=['zope.testing', 'zc.buildout', 'Cheetah', 'PasteScript'],
+ install_requires=['PasteScript>=1.6'],
+ tests_require=['zope.testing', 'Cheetah', 'PasteScript'],
test_suite='tests.test_suite',
entry_points={
'console_scripts': ['grokproject = grokproject:main'],
More information about the Checkins
mailing list