diff --git a/bitbake/lib/bb/command.py b/bitbake/lib/bb/command.py index d597d1d39b..2f37938cee 100644 --- a/bitbake/lib/bb/command.py +++ b/bitbake/lib/bb/command.py @@ -251,6 +251,16 @@ class CommandsAsync: command.finishAsyncCommand() findConfigFiles.needcache = True + def findConfigFilePath(self, command, params): + """ + Find the path of the requested configuration file + """ + configfile = params[0] + + command.cooker.findConfigFilePath(configfile) + command.finishAsyncCommand() + findConfigFilePath.needcache = False + def showVersions(self, command, params): """ Show the currently selected versions diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index 369444b9b3..e537634df8 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py @@ -516,6 +516,10 @@ class BBCooker: if regex in unmatched: collectlog.warn("No bb files matched BBFILE_PATTERN_%s '%s'" % (collection, pattern)) + def findConfigFilePath(self, configfile): + path = self._findConfigFile(configfile) + bb.event.fire(bb.event.ConfigFilePathFound(path), self.configuration.data) + def findConfigFiles(self, varname): """ Find config files which are appropriate values for varname. diff --git a/bitbake/lib/bb/event.py b/bitbake/lib/bb/event.py index 7d47edb9e7..7c49d464dd 100644 --- a/bitbake/lib/bb/event.py +++ b/bitbake/lib/bb/event.py @@ -399,6 +399,14 @@ class ConfigFilesFound(Event): self._variable = variable self._values = values +class ConfigFilePathFound(Event): + """ + Event when a path for a config file has been found + """ + def __init__(self, path): + Event.__init__(self) + self._path = path + class MsgBase(Event): """Base class for messages"""