1############################################################################## 2# 3# Copyright (c) 2006 Zope Foundation and Contributors. 4# All Rights Reserved. 5# 6# This software is subject to the provisions of the Zope Public License, 7# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. 8# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED 9# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 10# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS 11# FOR A PARTICULAR PURPOSE. 12# 13############################################################################## 14"""Bootstrap a buildout-based project 15 16Simply run this script in a directory containing a buildout.cfg. 17The script accepts buildout command-line options, so you can 18use the -c option to specify an alternate configuration file. 19 20$Id: bootstrap.py 112030 2010-05-05 18:53:49Z tseaver $ 21""" 22 23import os, shutil, sys, tempfile, urllib2 24 25tmpeggs = tempfile.mkdtemp() 26 27ez = {} 28exec urllib2.urlopen('http://peak.telecommunity.com/dist/ez_setup.py' 29 ).read() in ez 30ez['use_setuptools'](to_dir=tmpeggs, download_delay=0) 31 32import pkg_resources 33 34cmd = 'from setuptools.command.easy_install import main; main()' 35if sys.platform == 'win32': 36 cmd = '"%s"' % cmd # work around spawn lamosity on windows 37 38ws = pkg_resources.working_set 39assert os.spawnle( 40 os.P_WAIT, sys.executable, sys.executable, 41 '-c', cmd, '-mqNxd', tmpeggs, 'zc.buildout', 42 dict(os.environ, 43 PYTHONPATH= 44 ws.find(pkg_resources.Requirement.parse('setuptools')).location 45 ), 46 ) == 0 47 48ws.add_entry(tmpeggs) 49ws.require('zc.buildout') 50import zc.buildout.buildout 51zc.buildout.buildout.main(sys.argv[1:] + ['bootstrap']) 52shutil.rmtree(tmpeggs) 53