mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2024-12-28 08:48:53 +00:00
44 lines
2.5 KiB
Python
44 lines
2.5 KiB
Python
#!/usr/bin/env python
|
|
|
|
import errno, sys, os
|
|
|
|
where = os.path.realpath(sys.argv[0])
|
|
base = os.path.dirname(os.path.dirname(where))
|
|
|
|
# look for Tahoe.home .
|
|
homemarker = os.path.join(base, "Tahoe.home")
|
|
if not os.path.exists(homemarker):
|
|
print "I am a \"bin/tahoe\" executable who is only for the convenience of running Tahoe from its source distribution -- I work only when run from the \"bin/\" subdirectory of a Tahoe source code distribution, and only if you have already run \"make\". I just tried to run and found that I am not in the bin/ subdirectory of a Tahoe source distribution, so I am stopping now. To run Tahoe when it is installed, please execute my brother, also named \"tahoe\", who gets installed into the appropriate place for executables when you run \"make install\"."
|
|
sys.exit(1)
|
|
|
|
# we've found our home. Put the tahoe support/lib etc. in our PYTHONPATH.
|
|
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")
|
|
|
|
# update PYTHONPATH so that child processes (like twistd) will use this too
|
|
pp = os.environ.get("PYTHONPATH")
|
|
if pp:
|
|
pp = os.pathsep.join([supportdir] + pp.split(os.pathsep))
|
|
else:
|
|
pp = supportdir
|
|
os.environ["PYTHONPATH"] = pp
|
|
|
|
executable = os.path.join(base, "support", "bin", "tahoe")
|
|
|
|
try:
|
|
os.execve(executable, [executable] + sys.argv[1:], os.environ)
|
|
except (OSError, IOError), le:
|
|
if le.args[0] == errno.ENOENT:
|
|
print "I am a \"bin/tahoe\" executable who is only for the convenience of running Tahoe from its source distribution -- I work only when run from the \"bin/\" subdirectory of a Tahoe source code distribution, and only if you have already run \"make\". I just tried to run and could not find my brother, named \"../support/bin/tahoe\". To run Tahoe when it is installed, please execute my brother, also named \"tahoe\", who gets installed into the appropriate place for executables when you run \"make install\"."
|
|
raise
|
|
except Exception, le:
|
|
print "I am a \"bin/tahoe\" executable who is only for the convenience of running Tahoe from its source distribution -- I work only when run from the \"bin/\" subdirectory of a Tahoe source code distribution, and only if you have already run \"make\". I just tried to invoke my brother, named \"../support/bin/tahoe\" and got an exception."
|
|
raise
|
|
|
|
|