File: __init__.py

package info (click to toggle)
click 0.5.2-8
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,372 kB
  • sloc: python: 7,135; ansic: 857; makefile: 441; sh: 236; perl: 26; xml: 11
file content (48 lines) | stat: -rw-r--r-- 1,673 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
from __future__ import print_function

import os
import sys

from click_package.tests import config


def _append_env_path(envname, value):
    if envname in os.environ:
        if value in os.environ[envname].split(":"):
            return False
        os.environ[envname] = "%s:%s" % (os.environ[envname], value)
    else:
        os.environ[envname] = value
    return True


def get_executable():
    """Get python executable (respecting if python-coverage was used)"""
    coverage_executable = sys.executable+"-coverage"
    if "coverage" in sys.modules and os.path.isfile(coverage_executable):
        return [coverage_executable, "run", "-p"]
    return [sys.executable]


# Don't do any of this in interactive mode.
if not hasattr(sys, "ps1"):
    _lib_click_dir = os.path.join(config.abs_top_builddir, "lib", "click")
    changed = False
    if _append_env_path(
            "LD_LIBRARY_PATH", os.path.join(_lib_click_dir, ".libs")):
        changed = True
    if _append_env_path("GI_TYPELIB_PATH", _lib_click_dir):
        changed = True
    if changed:
        coverage_executable = get_executable()
        # We have to re-exec ourselves to get the dynamic loader to pick up
        # the new value of LD_LIBRARY_PATH.
        if "-m unittest" in sys.argv[0]:
            # unittest does horrible things to sys.argv in the name of
            # "usefulness", making the re-exec more painful than it needs to
            # be.
            os.execvp(
                coverage_executable[0], coverage_executable + ["-m", "unittest"] + sys.argv[1:])
        else:
            os.execvp(coverage_executable[0], coverage_executable + sys.argv)
        os._exit(1)