
The Run() function automatically uses the PATH variable to locate a tool when running it. Add a function that does this manually, so we don't have to run a tool to find out if it is present.
This is needed by the new Bintool class, which wants to check which tools are present.
Signed-off-by: Simon Glass sjg@chromium.org ---
(no changes since v1)
tools/patman/tools.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+)
diff --git a/tools/patman/tools.py b/tools/patman/tools.py index 24e2bf567b8..a27db05ff2a 100644 --- a/tools/patman/tools.py +++ b/tools/patman/tools.py @@ -378,6 +378,29 @@ def run_result(name, *args, **kwargs): raise ValueError(msg) raise
+def tool_find(name): + """Search the current path for a tool + + This uses both PATH and any value from SetToolPaths() to search for a tool + + Args: + name (str): Name of tool to locate + + Returns: + str: Full path to tool if found, else None + """ + name = os.path.expanduser(name) # Expand paths containing ~ + paths = [] + pathvar = os.environ.get('PATH') + if pathvar: + paths = pathvar.split(':') + if tool_search_paths: + paths += tool_search_paths + for path in paths: + fname = os.path.join(path, name) + if os.path.isfile(fname) and os.access(fname, os.X_OK): + return fname + def Run(name, *args, **kwargs): """Run a tool with some arguments