bin/allmydata-tahoe: add a sys.path-modifying preamble to make it easy to run from source

This commit is contained in:
Brian Warner 2007-06-06 11:24:00 -07:00
parent 6bb9debc16
commit 3c0485204e
2 changed files with 23 additions and 0 deletions

2
Tahoe.home Normal file
View File

@ -0,0 +1,2 @@
This file exists so the preamble in bin/allmydata-tahoe can find its source
tree.

View File

@ -1,4 +1,25 @@
#!/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 . Three cases:
# ...(not BASE)/allmydata-tahoe
# .../(BASE)/bin/allmydata-tahoe
# .../(BASE)/instdir/bin/allmydata-tahoe
if len(where) >= 2 and where[-2] == "bin":
if len(where) >= 3 and where[-3] == "instdir":
base = os.sep.join(where[:-3])
else:
base = os.sep.join(where[:-2])
if os.path.exists(os.path.join(base, "Tahoe.home")):
# we've found our home
libdir = os.path.join(base, "instdir", "lib")
sys.path.insert(0, libdir)
from allmydata.scripts import runner
runner.run()