1
 
##############################################################################
 
3
 
# Copyright (c) 2006 Zope Corporation and Contributors.
 
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.
 
13
 
##############################################################################
 
14
 
"""Bootstrap a buildout-based project
 
16
 
Simply run this script in a directory containing a buildout.cfg.
 
17
 
The script accepts buildout command-line options, so you can
 
18
 
use the -c option to specify an alternate configuration file.
 
20
 
$Id: bootstrap.py 90478 2008-08-27 22:44:46Z georgyberdyshev $
 
23
 
import os, shutil, sys, tempfile, urllib2
 
25
 
tmpeggs = tempfile.mkdtemp()
 
27
 
is_jython = sys.platform.startswith('java')
 
33
 
    exec urllib2.urlopen('http://peak.telecommunity.com/dist/ez_setup.py'
 
35
 
    ez['use_setuptools'](to_dir=tmpeggs, download_delay=0)
 
39
 
if sys.platform == 'win32':
 
42
 
            return '"%s"' % c # work around spawn lamosity on windows
 
49
 
cmd = 'from setuptools.command.easy_install import main; main()'
 
50
 
ws  = pkg_resources.working_set
 
55
 
    assert subprocess.Popen([sys.executable] + ['-c', quote(cmd), '-mqNxd', 
 
56
 
           quote(tmpeggs), 'zc.buildout'], 
 
59
 
               ws.find(pkg_resources.Requirement.parse('setuptools')).location
 
65
 
        os.P_WAIT, sys.executable, quote (sys.executable),
 
66
 
        '-c', quote (cmd), '-mqNxd', quote (tmpeggs), 'zc.buildout',
 
69
 
            ws.find(pkg_resources.Requirement.parse('setuptools')).location
 
74
 
ws.require('zc.buildout')
 
75
 
import zc.buildout.buildout
 
76
 
zc.buildout.buildout.main(sys.argv[1:] + ['bootstrap'])
 
77
 
shutil.rmtree(tmpeggs)