mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2024-12-23 23:02:25 +00:00
setup: generalize the kludge of finding an executable (i.e. trial or twistd) when there might be only a .py script version of it available
This commit is contained in:
parent
34911c8066
commit
5b476d73ee
28
src/allmydata/util/find_exe.py
Normal file
28
src/allmydata/util/find_exe.py
Normal file
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user