[Checkins] SVN: zopetoolkit/trunk/bootstrap.py Update bootstrap file to latest 1.x version
Hano Schlichting
cvs-admin at zope.org
Sun Aug 26 10:39:54 UTC 2012
Log message for revision 127577:
Update bootstrap file to latest 1.x version
Changed:
U zopetoolkit/trunk/bootstrap.py
-=-
Modified: zopetoolkit/trunk/bootstrap.py
===================================================================
--- zopetoolkit/trunk/bootstrap.py 2012-08-25 17:49:48 UTC (rev 127576)
+++ zopetoolkit/trunk/bootstrap.py 2012-08-26 10:39:50 UTC (rev 127577)
@@ -18,13 +18,13 @@
use the -c option to specify an alternate configuration file.
"""
-import os, shutil, sys, tempfile, textwrap, urllib, urllib2, subprocess
+import os, shutil, sys, tempfile, urllib, urllib2, subprocess
from optparse import OptionParser
if sys.platform == 'win32':
def quote(c):
if ' ' in c:
- return '"%s"' % c # work around spawn lamosity on windows
+ return '"%s"' % c # work around spawn lamosity on windows
else:
return c
else:
@@ -57,13 +57,13 @@
# out any namespace packages from site-packages that might have been
# loaded by .pth files.
clean_path = sys.path[:]
-import site
+import site # imported because of its side effects
sys.path[:] = clean_path
for k, v in sys.modules.items():
if k in ('setuptools', 'pkg_resources') or (
hasattr(v, '__path__') and
- len(v.__path__)==1 and
- not os.path.exists(os.path.join(v.__path__[0],'__init__.py'))):
+ len(v.__path__) == 1 and
+ not os.path.exists(os.path.join(v.__path__[0], '__init__.py'))):
# This is a namespace package. Remove it.
sys.modules.pop(k)
@@ -72,10 +72,11 @@
setuptools_source = 'http://peak.telecommunity.com/dist/ez_setup.py'
distribute_source = 'http://python-distribute.org/distribute_setup.py'
+
# parsing arguments
def normalize_to_url(option, opt_str, value, parser):
if value:
- if '://' not in value: # It doesn't smell like a URL.
+ if '://' not in value: # It doesn't smell like a URL.
value = 'file://%s' % (
urllib.pathname2url(
os.path.abspath(os.path.expanduser(value))),)
@@ -110,7 +111,7 @@
help=("Specify a URL or file location for the setup file. "
"If you use Setuptools, this will default to " +
setuptools_source + "; if you use Distribute, this "
- "will default to " + distribute_source +"."))
+ "will default to " + distribute_source + "."))
parser.add_option("--download-base", action="callback", dest="download_base",
callback=normalize_to_url, nargs=1, type="string",
help=("Specify a URL or directory for downloading "
@@ -133,8 +134,10 @@
help=("Specify the path to the buildout configuration "
"file to be used."))
-options, args = parser.parse_args()
+options, orig_args = parser.parse_args()
+args = []
+
# if -c was provided, we push it back into args for buildout's main function
if options.config_file is not None:
args += ['-c', options.config_file]
@@ -152,11 +155,10 @@
if options.accept_buildout_test_releases:
args.append('buildout:accept-buildout-test-releases=true')
-args.append('bootstrap')
try:
import pkg_resources
- import setuptools # A flag. Sometimes pkg_resources is installed alone.
+ import setuptools # A flag. Sometimes pkg_resources is installed alone.
if not hasattr(pkg_resources, '_distribute'):
raise ImportError
except ImportError:
@@ -211,6 +213,7 @@
# Figure out the most recent final version of zc.buildout.
import setuptools.package_index
_final_parts = '*final-', '*final'
+
def _final_version(parsed_version):
for part in parsed_version:
if (part[:1] == '*') and (part not in _final_parts):
@@ -242,7 +245,7 @@
if is_jython:
import subprocess
exitcode = subprocess.Popen(cmd, env=env).wait()
-else: # Windows prefers this, apparently; otherwise we would prefer subprocess
+else: # Windows prefers this, apparently; otherwise we would prefer subprocess
exitcode = os.spawnle(*([os.P_WAIT, sys.executable] + cmd + [env]))
if exitcode != 0:
sys.stdout.flush()
@@ -255,6 +258,9 @@
ws.add_entry(eggs_dir)
ws.require(requirement)
import zc.buildout.buildout
-zc.buildout.buildout.main(args)
-if not options.eggs: # clean up temporary egg directory
+if orig_args:
+ # run buildout with commands passed to bootstrap.py, then actually bootstrap
+ zc.buildout.buildout.main(args + orig_args)
+zc.buildout.buildout.main(args + ['bootstrap'])
+if not options.eggs: # clean up temporary egg directory
shutil.rmtree(eggs_dir)
More information about the checkins
mailing list