/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to tools/win32/bootstrap.py

  • Committer: Robert Collins
  • Date: 2005-10-19 10:11:57 UTC
  • mfrom: (1185.16.78)
  • mto: This revision was merged to the branch mainline in revision 1470.
  • Revision ID: robertc@robertcollins.net-20051019101157-17438d311e746b4f
mergeĀ fromĀ upstream

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
##############################################################################
2
 
#
3
 
# Copyright (c) 2006 Zope Corporation 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
 
 
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.
19
 
 
20
 
$Id: bootstrap.py 90478 2008-08-27 22:44:46Z georgyberdyshev $
21
 
"""
22
 
 
23
 
import os, shutil, sys, tempfile, urllib2
24
 
 
25
 
tmpeggs = tempfile.mkdtemp()
26
 
 
27
 
is_jython = sys.platform.startswith('java')
28
 
 
29
 
try:
30
 
    import pkg_resources
31
 
except ImportError:
32
 
    ez = {}
33
 
    exec(urllib2.urlopen('http://peak.telecommunity.com/dist/ez_setup.py'
34
 
                         ).read(), ez)
35
 
    ez['use_setuptools'](to_dir=tmpeggs, download_delay=0)
36
 
 
37
 
    import pkg_resources
38
 
 
39
 
if sys.platform == 'win32':
40
 
    def quote(c):
41
 
        if ' ' in c:
42
 
            return '"%s"' % c # work around spawn lamosity on windows
43
 
        else:
44
 
            return c
45
 
else:
46
 
    def quote(c):
47
 
        return c
48
 
 
49
 
cmd = 'from setuptools.command.easy_install import main; main()'
50
 
ws = pkg_resources.working_set
51
 
env = dict(
52
 
    os.environ,
53
 
    PYTHONPATH=ws.find(pkg_resources.Requirement.parse('setuptools')).location)
54
 
 
55
 
if is_jython:
56
 
    import subprocess
57
 
 
58
 
    assert subprocess.Popen(
59
 
        [sys.executable] +
60
 
        ['-c', quote(cmd), '-mqNxd', quote(tmpeggs), 'zc.buildout'],
61
 
        env=env,).wait() == 0
62
 
 
63
 
else:
64
 
    assert os.spawnle(
65
 
        os.P_WAIT, sys.executable, quote(sys.executable),
66
 
        '-c', quote(cmd), '-mqNxd', quote(tmpeggs), 'zc.buildout', env,
67
 
        ) == 0
68
 
 
69
 
ws.add_entry(tmpeggs)
70
 
ws.require('zc.buildout')
71
 
import zc.buildout.buildout
72
 
zc.buildout.buildout.main(sys.argv[1:] + ['bootstrap'])
73
 
shutil.rmtree(tmpeggs)