]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/commitdiff
bin/allmydata-tahoe: add a sys.path-modifying preamble to make it easy to run from...
authorBrian Warner <warner@allmydata.com>
Wed, 6 Jun 2007 18:24:00 +0000 (11:24 -0700)
committerBrian Warner <warner@allmydata.com>
Wed, 6 Jun 2007 18:24:00 +0000 (11:24 -0700)
Tahoe.home [new file with mode: 0644]
bin/allmydata-tahoe

diff --git a/Tahoe.home b/Tahoe.home
new file mode 100644 (file)
index 0000000..f3f4dca
--- /dev/null
@@ -0,0 +1,2 @@
+This file exists so the preamble in bin/allmydata-tahoe can find its source
+tree.
index 8958528eb24f10ca48e26a2b65bfd7ed9f919391..433095bad90932ce83e003d762b9392baf5185be 100644 (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()