def find_tool(name, additional_paths=[], path_last=False): """ Attempts to find tool (binary) named 'name' in PATH and in 'additional-paths'. If found in path, returns 'name'. If found in additional paths, returns full name. If the tool is found in several directories, returns the first path found. Otherwise, returns the empty string. If 'path_last' is specified, path is checked after 'additional_paths'. """ assert (isinstance(name, str)) assert (isinstance(additional_paths, list)) assert (isinstance(path_last, bool)) programs = path.programs_path() match = path.glob(programs, [name, name + '.exe']) additional_match = path.glob(additional_paths, [name, name + '.exe']) result = [] if path_last: result = additional_match if not result and match: result = match else: if match: result = match elif additional_match: result = additional_match if result: return path.native(result[0]) else: return ''
def find_tool(name, additional_paths = [], path_last = False): """ Attempts to find tool (binary) named 'name' in PATH and in 'additional-paths'. If found in path, returns 'name'. If found in additional paths, returns full name. If the tool is found in several directories, returns the first path found. Otherwise, returns the empty string. If 'path_last' is specified, path is checked after 'additional_paths'. """ assert(isinstance(name, str)) assert(isinstance(additional_paths, list)) assert(isinstance(path_last, bool)) programs = path.programs_path() match = path.glob(programs, [name, name + '.exe']) additional_match = path.glob(additional_paths, [name, name + '.exe']) result = [] if path_last: result = additional_match if not result and match: result = match else: if match: result = match elif additional_match: result = additional_match if result: return path.native(result[0]) else: return ''
def get_absolute_tool_path(command): """ Given an invocation command, return the absolute path to the command. This works even if commnad has not path element and is present in PATH. """ if os.path.dirname(command): return os.path.dirname(command) else: programs = path.programs_path() m = path.glob(programs, [command, command + '.exe']) if not len(m): print "Could not find:", command, "in", programs return os.path.dirname(m[0])
def get_absolute_tool_path(command): """ Given an invocation command, return the absolute path to the command. This works even if commnad has not path element and is present in PATH. """ if os.path.dirname(command): return os.path.dirname(command) else: programs = path.programs_path() m = path.glob(programs, [command, command + '.exe' ]) if not len(m): print "Could not find:", command, "in", programs return os.path.dirname(m[0])
def get_absolute_tool_path(command): """ Given an invocation command, return the absolute path to the command. This works even if command has not path element and is present in PATH. """ assert isinstance(command, basestring) if os.path.dirname(command): return os.path.dirname(command) else: programs = path.programs_path() m = path.glob(programs, [command, command + '.exe']) if not len(m): if __debug_configuration: print "Could not find:", command, "in", programs return None return os.path.dirname(m[0])
def get_absolute_tool_path(command): """ Given an invocation command, return the absolute path to the command. This works even if command has not path element and is present in PATH. """ assert isinstance(command, basestring) if os.path.dirname(command): return os.path.dirname(command) else: programs = path.programs_path() m = path.glob(programs, [command, command + '.exe' ]) if not len(m): if __debug_configuration: print "Could not find:", command, "in", programs return None return os.path.dirname(m[0])
def check_tool_aux(command): """ Checks if 'command' can be found either in path or is a full name to an existing file. """ assert(isinstance(command, str)) dirname = os.path.dirname(command) if dirname: if os.path.exists(command): return command # Both NT and Cygwin will run .exe files by their unqualified names. elif on_windows() and os.path.exists(command + '.exe'): return command # Only NT will run .bat files by their unqualified names. elif os_name() == 'NT' and os.path.exists(command + '.bat'): return command else: paths = path.programs_path() if path.glob(paths, [command]): return command
def check_tool_aux(command): """ Checks if 'command' can be found either in path or is a full name to an existing file. """ assert (isinstance(command, str)) dirname = os.path.dirname(command) if dirname: if os.path.exists(command): return command # Both NT and Cygwin will run .exe files by their unqualified names. elif on_windows() and os.path.exists(command + '.exe'): return command # Only NT will run .bat files by their unqualified names. elif os_name() == 'NT' and os.path.exists(command + '.bat'): return command else: paths = path.programs_path() if path.glob(paths, [command]): return command