[Checkins] SVN: grokproject/trunk/ Add handling for the
eggs-directory option in buildout.cfg, taken
Maurits van Rees
m.van.rees at zestsoftware.nl
Fri May 2 14:23:22 EDT 2008
Log message for revision 86115:
Add handling for the eggs-directory option in buildout.cfg, taken
from zopeproject.
Changed:
U grokproject/trunk/CHANGES.txt
U grokproject/trunk/grokproject/__init__.py
U grokproject/trunk/grokproject/template/buildout.cfg_tmpl
U grokproject/trunk/grokproject/utils.py
U grokproject/trunk/tests.txt
-=-
Modified: grokproject/trunk/CHANGES.txt
===================================================================
--- grokproject/trunk/CHANGES.txt 2008-05-02 18:13:00 UTC (rev 86114)
+++ grokproject/trunk/CHANGES.txt 2008-05-02 18:23:21 UTC (rev 86115)
@@ -4,6 +4,9 @@
0.8 (unreleased)
------------------
+* Add handling for the eggs-directory option in buildout.cfg, taken
+ from zopeproject.
+
* Added test.
* Copy the run_buildout function from zopeproject and put it in
Modified: grokproject/trunk/grokproject/__init__.py
===================================================================
--- grokproject/trunk/grokproject/__init__.py 2008-05-02 18:13:00 UTC (rev 86114)
+++ grokproject/trunk/grokproject/__init__.py 2008-05-02 18:23:21 UTC (rev 86115)
@@ -1,16 +1,14 @@
import sys
import os
-import os.path
import optparse
-import shutil
-import tempfile
-import pkg_resources
import urllib
import urlparse
import xml.sax.saxutils
from paste.script import templates, command
from paste.script.templates import var, NoDefault
from grokproject.utils import run_buildout
+from grokproject.utils import default_eggs_dir
+from grokproject.utils import get_buildout_default_eggs_dir
VERSIONINFO_INFO_URL = 'http://grok.zope.org/releaseinfo/current'
@@ -81,6 +79,8 @@
"bootstrap the buildout.",
default=True, should_ask=False,
getter=get_boolean_value_for_option),
+ ask_var('eggs_dir', 'Location where zc.buildout will look for and place '
+ 'packages', default=default_eggs_dir())
]
def check_vars(self, vars, cmd):
@@ -105,6 +105,20 @@
# Escape values that go in site.zcml.
vars[var_name] = xml.sax.saxutils.quoteattr(vars[var_name])
vars['app_class_name'] = vars['project'].capitalize()
+
+ buildout_default = get_buildout_default_eggs_dir()
+ input = os.path.expanduser(vars['eggs_dir'])
+ if input == buildout_default:
+ vars['eggs_dir'] = (
+ '# eggs will be installed in the default buildout location\n'
+ '# (see .buildout/default.cfg in your home directory)')
+ else:
+ vars['eggs_dir'] = (
+ '# Warning: when you share this buildout.cfg with friends\n'
+ '# please remove the eggs-directory line as it is hardcoded.\n'
+ '# Consider adding this to the .buildout/default.cfg in your '
+ 'home directory.\n'
+ 'eggs-directory = %s') % input
return vars
def post(self, command, output_dir, vars):
Modified: grokproject/trunk/grokproject/template/buildout.cfg_tmpl
===================================================================
--- grokproject/trunk/grokproject/template/buildout.cfg_tmpl 2008-05-02 18:13:00 UTC (rev 86114)
+++ grokproject/trunk/grokproject/template/buildout.cfg_tmpl 2008-05-02 18:23:21 UTC (rev 86115)
@@ -4,6 +4,7 @@
find-links = http://download.zope.org/distribution/
newest = ${newest}
extends = ${version_info_url}
+${eggs_dir}
versions = versions
[app]
Modified: grokproject/trunk/grokproject/utils.py
===================================================================
--- grokproject/trunk/grokproject/utils.py 2008-05-02 18:13:00 UTC (rev 86114)
+++ grokproject/trunk/grokproject/utils.py 2008-05-02 18:23:21 UTC (rev 86115)
@@ -1,3 +1,4 @@
+import os
import sys
import shutil
import tempfile
@@ -2,4 +3,24 @@
import pkg_resources
+from ConfigParser import ConfigParser
+HOME = os.path.expanduser('~')
+
+def get_buildout_default_eggs_dir():
+ default_cfg = os.path.join(HOME, '.buildout', 'default.cfg')
+ if os.path.isfile(default_cfg):
+ cfg = ConfigParser()
+ cfg.read(default_cfg)
+ if cfg.has_option('buildout', 'eggs-directory'):
+ eggs_dir = cfg.get('buildout', 'eggs-directory').strip()
+ if eggs_dir:
+ return os.path.expanduser(eggs_dir)
+
+def default_eggs_dir():
+ buildout_default = get_buildout_default_eggs_dir()
+ if buildout_default:
+ return buildout_default
+ return os.path.join(HOME, 'buildout-eggs')
+
+
def run_buildout(verbose=False):
Modified: grokproject/trunk/tests.txt
===================================================================
--- grokproject/trunk/tests.txt 2008-05-02 18:13:00 UTC (rev 86114)
+++ grokproject/trunk/tests.txt 2008-05-02 18:23:21 UTC (rev 86115)
@@ -11,8 +11,9 @@
Then use paster::
- >>> sh('paster create -t grok grokexample user=a passwd=a --no-interactive')
- paster create -t grok grokexample user=a passwd=a --no-interactive
+ >>> paster = current_dir + '/bin/paster create -t grok '
+ >>> sh(paster + 'grokexample user=a passwd=a --no-interactive')
+ /.../bin/paster create -t grok grokexample user=a passwd=a --no-interactive
...
Let's check the contents
More information about the Checkins
mailing list