[Erp5-report] r31861 luke - in /erp5/trunk/buildout: ./ bootstrap/
nobody at svn.erp5.org
nobody at svn.erp5.org
Thu Jan 21 09:48:57 CET 2010
Author: luke
Date: Thu Jan 21 09:48:55 2010
New Revision: 31861
URL: http://svn.erp5.org?rev=31861&view=rev
Log:
- used static export of fresh bootstrap instead of relying on externals
After discussion with Jerome and Julien it was figured out that externals
are generally bad. And buildout bootstrap will be only in one place which
makes it easier to update manually in controlled way from time to time.
Moreover buildout has ability to autoupdate itself.
Added:
erp5/trunk/buildout/bootstrap/
erp5/trunk/buildout/bootstrap/bootstrap.py
Removed:
erp5/trunk/buildout/EXTERNALS.TXT
Modified:
erp5/trunk/buildout/ (props changed)
Propchange: erp5/trunk/buildout/
------------------------------------------------------------------------------
--- svn:externals (original)
+++ svn:externals (removed)
@@ -1,10 +1,0 @@
-#
-# Used for maintenance of external resources in this svn bundle. Edit
-# this file as appropriate and then run the following command from within
-# the checkout directory where this file lives on your local machine:
-#
-# svn propset svn:externals -F ./EXTERNALS.TXT .
-#
-
-bootstrap svn://svn.zope.org/repos/main/zc.buildout/trunk/bootstrap
-
Removed: erp5/trunk/buildout/EXTERNALS.TXT
URL: http://svn.erp5.org/erp5/trunk/buildout/EXTERNALS.TXT?rev=31860&view=auto
==============================================================================
--- erp5/trunk/buildout/EXTERNALS.TXT [utf8] (original)
+++ erp5/trunk/buildout/EXTERNALS.TXT (removed)
@@ -1,10 +1,0 @@
-#
-# Used for maintenance of external resources in this svn bundle. Edit
-# this file as appropriate and then run the following command from within
-# the checkout directory where this file lives on your local machine:
-#
-# svn propset svn:externals -F ./EXTERNALS.TXT .
-#
-
-bootstrap svn://svn.zope.org/repos/main/zc.buildout/trunk/bootstrap
-
Added: erp5/trunk/buildout/bootstrap/bootstrap.py
URL: http://svn.erp5.org/erp5/trunk/buildout/bootstrap/bootstrap.py?rev=31861&view=auto
==============================================================================
--- erp5/trunk/buildout/bootstrap/bootstrap.py (added)
+++ erp5/trunk/buildout/bootstrap/bootstrap.py [utf8] Thu Jan 21 09:48:55 2010
@@ -1,0 +1,121 @@
+##############################################################################
+#
+# Copyright (c) 2006 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Bootstrap a buildout-based project
+
+Simply run this script in a directory containing a buildout.cfg.
+The script accepts buildout command-line options, so you can
+use the -c option to specify an alternate configuration file.
+
+$Id: bootstrap.py 105417 2009-11-01 15:15:20Z tarek $
+"""
+
+import os, shutil, sys, tempfile, urllib2
+from optparse import OptionParser
+
+tmpeggs = tempfile.mkdtemp()
+
+is_jython = sys.platform.startswith('java')
+
+# parsing arguments
+parser = OptionParser()
+parser.add_option("-v", "--version", dest="version",
+ help="use a specific zc.buildout version")
+parser.add_option("-d", "--distribute",
+ action="store_true", dest="distribute", default=False,
+ help="Use Disribute rather than Setuptools.")
+
+parser.add_option("-c", None, action="store", dest="config_file",
+ help=("Specify the path to the buildout configuration "
+ "file to be used."))
+
+options, args = parser.parse_args()
+
+# if -c was provided, we push it back into args for buildout' main function
+if options.config_file is not None:
+ args += ['-c', options.config_file]
+
+if options.version is not None:
+ VERSION = '==%s' % options.version
+else:
+ VERSION = ''
+
+USE_DISTRIBUTE = options.distribute
+args = args + ['bootstrap']
+
+to_reload = False
+try:
+ import pkg_resources
+ if not hasattr(pkg_resources, '_distribute'):
+ to_reload = True
+ raise ImportError
+except ImportError:
+ ez = {}
+ if USE_DISTRIBUTE:
+ exec urllib2.urlopen('http://python-distribute.org/distribute_setup.py'
+ ).read() in ez
+ ez['use_setuptools'](to_dir=tmpeggs, download_delay=0, no_fake=True)
+ else:
+ exec urllib2.urlopen('http://peak.telecommunity.com/dist/ez_setup.py'
+ ).read() in ez
+ ez['use_setuptools'](to_dir=tmpeggs, download_delay=0)
+
+ if to_reload:
+ reload(pkg_resources)
+ else:
+ import pkg_resources
+
+if sys.platform == 'win32':
+ def quote(c):
+ if ' ' in c:
+ return '"%s"' % c # work around spawn lamosity on windows
+ else:
+ return c
+else:
+ def quote (c):
+ return c
+
+cmd = 'from setuptools.command.easy_install import main; main()'
+ws = pkg_resources.working_set
+
+if USE_DISTRIBUTE:
+ requirement = 'distribute'
+else:
+ requirement = 'setuptools'
+
+if is_jython:
+ import subprocess
+
+ assert subprocess.Popen([sys.executable] + ['-c', quote(cmd), '-mqNxd',
+ quote(tmpeggs), 'zc.buildout' + VERSION],
+ env=dict(os.environ,
+ PYTHONPATH=
+ ws.find(pkg_resources.Requirement.parse(requirement)).location
+ ),
+ ).wait() == 0
+
+else:
+ assert os.spawnle(
+ os.P_WAIT, sys.executable, quote (sys.executable),
+ '-c', quote (cmd), '-mqNxd', quote (tmpeggs), 'zc.buildout' + VERSION,
+ dict(os.environ,
+ PYTHONPATH=
+ ws.find(pkg_resources.Requirement.parse(requirement)).location
+ ),
+ ) == 0
+
+ws.add_entry(tmpeggs)
+ws.require('zc.buildout' + VERSION)
+import zc.buildout.buildout
+zc.buildout.buildout.main(args)
+shutil.rmtree(tmpeggs)
More information about the Erp5-report
mailing list