west: core: add search path argument to require()
Allow the runners to override the default search path, e.g. when provided through command line. The default is to search for the program binary on the system PATH. This is useful when the runner allows to optionally override the search path of the tool, in the case there are multiple versions or installations, and not necessarily the tools path are present in the system PATH environment variable. For example: `tool = self.require(tool_name, path=args.tool_path_override)` Signed-off-by: Manuel Argüelles <manuel.arguelles@nxp.com>
This commit is contained in:
parent
467ce89458
commit
c35d024b8d
1 changed files with 5 additions and 3 deletions
|
@ -658,19 +658,21 @@ class ZephyrBinaryRunner(abc.ABC):
|
|||
in the order they appear on the command line.'''
|
||||
|
||||
@staticmethod
|
||||
def require(program: str) -> str:
|
||||
def require(program: str, path: Optional[str] = None) -> str:
|
||||
'''Require that a program is installed before proceeding.
|
||||
|
||||
:param program: name of the program that is required,
|
||||
or path to a program binary.
|
||||
:param path: PATH where to search for the program binary.
|
||||
By default check on the system PATH.
|
||||
|
||||
If ``program`` is an absolute path to an existing program
|
||||
binary, this call succeeds. Otherwise, try to find the program
|
||||
by name on the system PATH.
|
||||
by name on the system PATH or in the given PATH, if provided.
|
||||
|
||||
If the program can be found, its path is returned.
|
||||
Otherwise, raises MissingProgram.'''
|
||||
ret = shutil.which(program)
|
||||
ret = shutil.which(program, path=path)
|
||||
if ret is None:
|
||||
raise MissingProgram(program)
|
||||
return ret
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue