mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2024-12-29 01:08:54 +00:00
97f2953cec
This is necessary, as we can't prevent setuptools from respecting any such eggs, therefore we need to respect them in order to maintain consistency. However, we don't normally install any "install_requires" eggs into the source tree root dir.
53 lines
2.0 KiB
Python
53 lines
2.0 KiB
Python
#!/usr/bin/env python
|
|
|
|
# This preamble is adapted from Twisted. If we're being run from a source
|
|
# tree, add that tree's libdir to our path, so tahoe can be run from source
|
|
# without a lot of tedious PYTHONPATH changes.
|
|
import sys, os.path
|
|
where = os.path.realpath(sys.argv[0]).split(os.sep)
|
|
|
|
# look for Tahoe.home . Two cases:
|
|
# ...(not BASE)/tahoe
|
|
# .../(BASE)/bin/tahoe
|
|
if len(where) >= 2 and where[-2] == "bin":
|
|
base = os.sep.join(where[:-2])
|
|
|
|
if os.path.exists(os.path.join(base, "Tahoe.home")):
|
|
# we've found our home. Put the tahoe source at the front of sys.path
|
|
srcdir = os.path.join(base, "src")
|
|
sys.path.insert(0, srcdir)
|
|
# and put any support eggs at the end of sys.path
|
|
if sys.platform == "win32":
|
|
supportdir = os.path.join(base, "support", "Lib", "site-packages")
|
|
else:
|
|
supportdir = os.path.join(base, "support",
|
|
"lib",
|
|
"python%d.%d" % sys.version_info[:2],
|
|
"site-packages")
|
|
support_eggs = []
|
|
if os.path.exists(supportdir):
|
|
for fn in os.listdir(supportdir):
|
|
if fn.endswith(".egg"):
|
|
support_eggs.append(os.path.join(supportdir, fn))
|
|
|
|
# We also need to include .egg's in the base dir, because if there is an
|
|
# .egg there then "make build-deps" will take that as satisfying its
|
|
# requirements.
|
|
for fn in os.listdir(base):
|
|
if fn.endswith(".egg"):
|
|
support_eggs.append(os.path.abspath(os.path.join(base, fn)))
|
|
|
|
sys.path.extend(support_eggs)
|
|
|
|
# also update PYTHONPATH so that child processes (like twistd) will
|
|
# use this too
|
|
pp = os.environ.get("PYTHONPATH")
|
|
if pp:
|
|
pp = os.pathsep.join([srcdir] + pp.split(os.pathsep) + support_eggs)
|
|
else:
|
|
pp = os.pathsep.join([srcdir] + support_eggs)
|
|
os.environ["PYTHONPATH"] = pp
|
|
|
|
from allmydata.scripts import runner
|
|
runner.run()
|