Moved the find_binary function into a replaceable method

This commit is contained in:
Thomas Nagy 2014-02-01 14:13:16 +01:00
parent 1018065c2e
commit e085c8d25d
1 changed files with 16 additions and 15 deletions

View File

@ -517,21 +517,7 @@ def find_program(self, filename, **kw):
path_list = Utils.to_list(path_list)
else:
path_list = environ.get('PATH', '').split(os.pathsep)
def find_binary():
for f in filename:
for ext in exts.split(','):
exe_name = f + ext
if os.path.isabs(exe_name):
if os.path.isfile(exe_name):
return exe_name
else:
for path in path_list:
x = os.path.expanduser(os.path.join(path, exe_name))
if os.path.isfile(x):
return x
ret = find_binary()
ret = self.find_binary(filename, exts.split(','), path_list)
if not ret and Utils.winreg:
ret = Utils.get_registry_app_path(Utils.winreg.HKEY_CURRENT_USER, filename)
@ -556,3 +542,18 @@ def find_program(self, filename, **kw):
return ret
@conf
def find_binary(self, filenames, exts, paths):
for f in filenames:
for ext in exts:
exe_name = f + ext
if os.path.isabs(exe_name):
if os.path.isfile(exe_name):
return exe_name
else:
for path in paths:
x = os.path.expanduser(os.path.join(path, exe_name))
if os.path.isfile(x):
return x
return None