]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/commitdiff
setup: add a case to execute "python .../twistd.py" if "twistd" is not found
authorZooko O'Whielacronx <zooko@zooko.com>
Thu, 5 Feb 2009 01:06:20 +0000 (18:06 -0700)
committerZooko O'Whielacronx <zooko@zooko.com>
Thu, 5 Feb 2009 01:06:20 +0000 (18:06 -0700)
src/allmydata/scripts/startstop_node.py

index e27749a38a9ccce716fd5163fb63c537c5f0bfb6..d23ad39e9f46c6ded23f707c4e51666dfa638ae9 100644 (file)
@@ -59,10 +59,15 @@ def do_start(basedir, opts, out=sys.stdout, err=sys.stderr):
         # If 'twistd' wasn't on $PATH, maybe we're running from source and
         # Twisted was built as one of our dependencies. If so, we're at
         # BASEDIR/src/allmydata/scripts/startstop_node.py, and it's at
-        # BASEDIR/support/bin/twistd
+        # BASEDIR/support/$BINDIR/twistd
         up = os.path.dirname
         TAHOEDIR = up(up(up(up(os.path.abspath(__file__)))))
-        bindir = os.path.join(TAHOEDIR, "support/bin")
+        if sys.platform == "win32":
+            bin_dir = "Scripts"
+        else:
+            bin_dir = "bin"
+        bindir = os.path.join(TAHOEDIR, "support", bin_dir)
+
         maybe = os.path.join(bindir, "twistd")
         if os.path.exists(maybe):
             cmd = [maybe]
@@ -70,6 +75,15 @@ def do_start(basedir, opts, out=sys.stdout, err=sys.stderr):
             os.environ["PATH"] = os.pathsep.join(oldpath + [bindir])
             # sys.path and $PYTHONPATH are taken care of by the extra code in
             # 'setup.py trial'
+        else:
+            maybe = maybe+'.py'
+            if os.path.exists(maybe):
+                cmd = [sys.executable, maybe]
+                oldpath = os.environ.get("PATH", "").split(os.pathsep)
+                os.environ["PATH"] = os.pathsep.join(oldpath + [bindir])
+                # sys.path and $PYTHONPATH are taken care of by the extra code in
+                # 'setup.py trial'
+
     if not cmd:
         print "Can't find twistd (it comes with Twisted).  Aborting."
         sys.exit(1)