]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/commitdiff
setup: generalize the kludge of finding an executable (i.e. trial or twistd) when...
authorZooko O'Whielacronx <zooko@zooko.com>
Mon, 15 Oct 2007 17:25:04 +0000 (10:25 -0700)
committerZooko O'Whielacronx <zooko@zooko.com>
Mon, 15 Oct 2007 17:25:04 +0000 (10:25 -0700)
src/allmydata/util/find_exe.py [new file with mode: 0644]

diff --git a/src/allmydata/util/find_exe.py b/src/allmydata/util/find_exe.py
new file mode 100644 (file)
index 0000000..f15a403
--- /dev/null
@@ -0,0 +1,28 @@
+import os, sys
+from twisted.python.procutils import which
+
+def find_exe(exename):
+    """
+    Look for something named exename or exename + ".py".
+
+    This is a kludge.
+
+    @return: a list containing one element which is the path to the exename
+        (if it is thought to be executable), or else the first element being
+        sys.executable and the second element being the path to the
+        exename + ".py", or else return False if one can't be found
+    """
+    exes = which(exename)
+    exe = exes and exes[0]
+    if not exe:
+        exe = os.path.join(sys.prefix, 'scripts', exename + '.py') 
+    if os.path.exists(exe):
+        path, ext = os.path.splitext(exe)
+        if ext.lower() in [".exe", ".bat",]:
+            cmd = [exe,]
+        else:
+            cmd = [sys.executable, exe,]
+        return cmd
+    else:
+        return False
+