diff options
| author | Jacob Kaplan-Moss | 2009-04-12 15:02:44 -0500 | 
|---|---|---|
| committer | Jacob Kaplan-Moss | 2009-04-12 15:02:44 -0500 | 
| commit | 4391a39ee4cde31ff9c9a56cd8d452b934136b4e (patch) | |
| tree | 2404ec68497730360482d78c523f25f03855ab84 /bootstrap.py | |
| download | django-shorturls-4391a39ee4cde31ff9c9a56cd8d452b934136b4e.tar.bz2 | |
Buildout bootstrap setup.
Diffstat (limited to 'bootstrap.py')
| -rwxr-xr-x | bootstrap.py | 78 | 
1 files changed, 78 insertions, 0 deletions
| diff --git a/bootstrap.py b/bootstrap.py new file mode 100755 index 0000000..4609955 --- /dev/null +++ b/bootstrap.py @@ -0,0 +1,78 @@ +#!/usr/bin/env python +############################################################################## +# +# 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$ +""" + +import os, shutil, sys, tempfile, urllib2 + +tmpeggs = tempfile.mkdtemp() + +is_jython = sys.platform.startswith('java') + +try: +    import pkg_resources +except ImportError: +    ez = {} +    exec urllib2.urlopen('http://peak.telecommunity.com/dist/ez_setup.py' +                         ).read() in ez +    ez['use_setuptools'](to_dir=tmpeggs, download_delay=0) + +    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 is_jython: +    import subprocess +     +    assert subprocess.Popen([sys.executable] + ['-c', quote(cmd), '-mqNxd',  +           quote(tmpeggs), 'zc.buildout'],  +           env=dict(os.environ, +               PYTHONPATH= +               ws.find(pkg_resources.Requirement.parse('setuptools')).location +               ), +           ).wait() == 0 + +else: +    assert os.spawnle( +        os.P_WAIT, sys.executable, quote (sys.executable), +        '-c', quote (cmd), '-mqNxd', quote (tmpeggs), 'zc.buildout', +        dict(os.environ, +            PYTHONPATH= +            ws.find(pkg_resources.Requirement.parse('setuptools')).location +            ), +        ) == 0 + +ws.add_entry(tmpeggs) +ws.require('zc.buildout') +import zc.buildout.buildout +zc.buildout.buildout.main(sys.argv[1:] + ['bootstrap']) +shutil.rmtree(tmpeggs) | 
