~launchpad-pqm/launchpad/devel

« back to all changes in this revision

Viewing changes to bootstrap.py

  • Committer: Gary Poster
  • Date: 2009-07-15 16:15:48 UTC
  • mto: This revision was merged to the branch mainline in revision 8912.
  • Revision ID: gary.poster@canonical.com-20090715161548-tcruf9zev3t0vywn
put in new zc.buildout eggs

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
The script accepts buildout command-line options, so you can
18
18
use the -c option to specify an alternate configuration file.
19
19
 
20
 
$Id: bootstrap.py 101848 2009-07-13 13:45:10Z gary $
 
20
$Id: bootstrap.py 101879 2009-07-14 01:24:48Z gary $
21
21
"""
22
22
 
23
23
import os, re, shutil, sys, tempfile, textwrap, urllib, urllib2
56
56
    By using --ez_setup-source and --download-base to point to local resources,
57
57
    you can keep this script from going over the network.
58
58
    ''' % configuration)
59
 
match_equals = re.compile(r'(%s)=(\S*)' % ('|'.join(configuration),)).match
 
59
match_equals = re.compile(r'(%s)=(.*)' % ('|'.join(configuration),)).match
60
60
args = sys.argv[1:]
61
61
if args == ['--help']:
62
62
    print helpstring
63
63
    sys.exit(0)
64
64
 
65
 
# defaults
 
65
# If we end up using a temporary directory for storing our eggs, this will
 
66
# hold the path of that directory.  On the other hand, if an explicit directory
 
67
# is specified in the argv, this will remain None.
66
68
tmpeggs = None
67
69
 
68
70
while args:
84
86
 
85
87
for name in ('--ez_setup-source', '--download-base'):
86
88
    val = configuration[name]
87
 
    if val is not None and '://' not in val: # we're being lazy.
 
89
    if val is not None and '://' not in val: # We're being lazy.
88
90
        configuration[name] = 'file://%s' % (
89
91
            urllib.pathname2url(os.path.abspath(os.path.expanduser(val))),)
90
92
 
91
93
if (configuration['--download-base'] and
92
94
    not configuration['--download-base'].endswith('/')):
93
 
    # download base needs a trailing slash to make the world happy
 
95
    # Download base needs a trailing slash to make the world happy.
94
96
    configuration['--download-base'] += '/'
95
97
 
96
98
if not configuration['--eggs']:
99
101
    configuration['--eggs'] = os.path.abspath(
100
102
        os.path.expanduser(configuration['--eggs']))
101
103
 
 
104
# The requirement is what we will pass to setuptools to specify zc.buildout.
 
105
requirement = 'zc.buildout'
102
106
if configuration['--version']:
103
 
    configuration['--version'] = '==' + configuration['--version']
 
107
    requirement += '==' + configuration['--version']
104
108
 
105
109
try:
106
110
    import pkg_resources
132
136
if configuration['--download-base']:
133
137
    cmd.extend(['-f', quote(configuration['--download-base'])])
134
138
 
135
 
cmd.append('zc.buildout' + configuration['--version'])
 
139
cmd.append(requirement)
136
140
 
137
141
ws = pkg_resources.working_set
138
142
env = dict(
153
157
    sys.exit(exitcode)
154
158
 
155
159
ws.add_entry(configuration['--eggs'])
156
 
ws.require('zc.buildout' + configuration['--version'])
 
160
ws.require(requirement)
157
161
import zc.buildout.buildout
158
162
args.append('bootstrap')
159
163
zc.buildout.buildout.main(args)