[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