bootstrap.py
author Simon Descarpentries <sid@sopinspace.com>
Mon, 21 Oct 2013 16:37:07 +0200
changeset 553 bf26fb47a14c
parent 0 40c8f766c9b8
permissions -rw-r--r--
To allow scrolling in Safari mobile, we set the content of text_view_comments frame in a jQuery UI layout. So the automated scrolling operations in c_sync.js must be adjustable to the right part to scroll. Also, if a comment have to be shown outside of the current viewport, we scroll the correct part to that viewport and then set the comment top Y offset to juste what it needs to avoid the "Add comment" button after scrolling operation. If not in Safari mobile, we add an offset here to avoid comment to display under the "Add comment" button.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     1
##############################################################################
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     2
#
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     3
# Copyright (c) 2006 Zope Corporation and Contributors.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     4
# All Rights Reserved.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     5
#
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     6
# This software is subject to the provisions of the Zope Public License,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     7
# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     8
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     9
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    10
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    11
# FOR A PARTICULAR PURPOSE.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    12
#
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    13
##############################################################################
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    14
"""Bootstrap a buildout-based project
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    15
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    16
Simply run this script in a directory containing a buildout.cfg.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    17
The script accepts buildout command-line options, so you can
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    18
use the -c option to specify an alternate configuration file.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    19
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    20
$Id$
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    21
"""
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    22
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    23
import os, shutil, sys, tempfile, urllib2
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    24
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    25
tmpeggs = tempfile.mkdtemp()
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    26
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    27
is_jython = sys.platform.startswith('java')
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    28
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    29
try:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    30
    import pkg_resources
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    31
except ImportError:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    32
    ez = {}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    33
    exec urllib2.urlopen('http://peak.telecommunity.com/dist/ez_setup.py'
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    34
                         ).read() in ez
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    35
    ez['use_setuptools'](to_dir=tmpeggs, download_delay=0)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    36
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    37
    import pkg_resources
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    38
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    39
if sys.platform == 'win32':
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    40
    def quote(c):
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    41
        if ' ' in c:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    42
            return '"%s"' % c # work around spawn lamosity on windows
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    43
        else:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    44
            return c
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    45
else:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    46
    def quote (c):
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    47
        return c
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    48
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    49
cmd = 'from setuptools.command.easy_install import main; main()'
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    50
ws  = pkg_resources.working_set
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    51
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    52
if len(sys.argv) > 2 and sys.argv[1] == '--version':
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    53
    VERSION = '==%s' % sys.argv[2]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    54
    args = sys.argv[3:] + ['bootstrap']
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    55
else:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    56
    VERSION = ''
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    57
    args = sys.argv[1:] + ['bootstrap']
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    58
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    59
if is_jython:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    60
    import subprocess
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    61
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    62
    assert subprocess.Popen([sys.executable] + ['-c', quote(cmd), '-mqNxd',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    63
           quote(tmpeggs), 'zc.buildout' + VERSION],
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    64
           env=dict(os.environ,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    65
               PYTHONPATH=
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    66
               ws.find(pkg_resources.Requirement.parse('setuptools')).location
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    67
               ),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    68
           ).wait() == 0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    69
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    70
else:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    71
    assert os.spawnle(
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    72
        os.P_WAIT, sys.executable, quote (sys.executable),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    73
        '-c', quote (cmd), '-mqNxd', quote (tmpeggs), 'zc.buildout' + VERSION,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    74
        dict(os.environ,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    75
            PYTHONPATH=
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    76
            ws.find(pkg_resources.Requirement.parse('setuptools')).location
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    77
            ),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    78
        ) == 0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    79
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    80
ws.add_entry(tmpeggs)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    81
ws.require('zc.buildout' + VERSION)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    82
import zc.buildout.buildout
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    83
zc.buildout.buildout.main(args)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    84
shutil.rmtree(tmpeggs)