Source code for radical.utils.which
__author__ = "Radical.Utils Development Team (Andre Merzky, Ole Weidner)"
__copyright__ = "Copyright 2013, RADICAL@Rutgers"
__license__ = "MIT"
import os
# ------------------------------------------------------------------------------
#
[docs]def which(names):
'''
Takes a (list of) name(s) and looks for an executable in the path. It
will return the first match found, or `None` if none of the given names
is found.
'''
def is_exe(fpath):
return os.path.isfile(fpath) and os.access(fpath, os.X_OK)
if not isinstance(names, list):
names = [names]
for name in names:
if is_exe(name):
return name
for path in os.environ.get('PATH', '').split(':'):
fpath = '%s/%s' % (path, name)
if is_exe(fpath):
return fpath
return None
# ------------------------------------------------------------------------------