config: Public interface amendments
Add a repo_paths argument to find_missing_repos, with the default value unchanged. Factor out the contents of the loop in _get_repo_dict in config.py to get_repo so that Repo instances can be created one at a time. The behavior of _get_repo_dict is unchanged. Add get_repos_config so it is possible to check whether a repo name exists just in the config, as opposed to whether a Repo instance has been created. Add get_config to allow the config dict to be read in its entirety for debugging purposes. Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com> [Jan: fix minor style issue] Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
This commit is contained in:
parent
71cf5dc17b
commit
958b0ab2f8
@ -68,16 +68,27 @@ class Config:
|
|||||||
"""
|
"""
|
||||||
return self._config.get('build_system', '')
|
return self._config.get('build_system', '')
|
||||||
|
|
||||||
def find_missing_repos(self):
|
def find_missing_repos(self, repo_paths={}):
|
||||||
"""
|
"""
|
||||||
Returns repos that are in config but not on disk
|
Returns repos that are in config but not on disk
|
||||||
"""
|
"""
|
||||||
repo_paths = {}
|
|
||||||
(self._config, missing_repo_names) = \
|
(self._config, missing_repo_names) = \
|
||||||
self.handler.get_config(repos=repo_paths)
|
self.handler.get_config(repos=repo_paths)
|
||||||
|
|
||||||
return missing_repo_names
|
return missing_repo_names
|
||||||
|
|
||||||
|
def get_config(self):
|
||||||
|
"""
|
||||||
|
Returns the config dict.
|
||||||
|
"""
|
||||||
|
return self._config
|
||||||
|
|
||||||
|
def get_repos_config(self):
|
||||||
|
"""
|
||||||
|
Returns the repository configuration
|
||||||
|
"""
|
||||||
|
return self._config.get('repos', {})
|
||||||
|
|
||||||
def get_repos(self):
|
def get_repos(self):
|
||||||
"""
|
"""
|
||||||
Returns the list of repos.
|
Returns the list of repos.
|
||||||
@ -88,23 +99,25 @@ class Config:
|
|||||||
self.repo_dict = self._get_repo_dict()
|
self.repo_dict = self._get_repo_dict()
|
||||||
return list(self.repo_dict.values())
|
return list(self.repo_dict.values())
|
||||||
|
|
||||||
|
def get_repo(self, name):
|
||||||
|
"""
|
||||||
|
Returns a `Repo` instance for the configuration with the key
|
||||||
|
`name`.
|
||||||
|
"""
|
||||||
|
repo_defaults = self._config.get('defaults', {}).get('repos', {})
|
||||||
|
config = self.get_repos_config()[name] or {}
|
||||||
|
return Repo.factory(name,
|
||||||
|
config,
|
||||||
|
repo_defaults,
|
||||||
|
self.top_repo_path)
|
||||||
|
|
||||||
def _get_repo_dict(self):
|
def _get_repo_dict(self):
|
||||||
"""
|
"""
|
||||||
Returns a dictionary containing the repositories with
|
Returns a dictionary containing the repositories with
|
||||||
their names (as it is defined in the config file) as keys
|
their names (as it is defined in the config file) as keys
|
||||||
and the `Repo` instances as values.
|
and the `Repo` instances as values.
|
||||||
"""
|
"""
|
||||||
repo_config_dict = self._config.get('repos', {})
|
return {name: self.get_repo(name) for name in self.get_repos_config()}
|
||||||
repo_defaults = self._config.get('defaults', {}).get('repos', {})
|
|
||||||
repo_dict = {}
|
|
||||||
for repo in repo_config_dict:
|
|
||||||
repo_config_dict[repo] = repo_config_dict[repo] or {}
|
|
||||||
repo_dict[repo] = Repo.factory(repo,
|
|
||||||
repo_config_dict[repo],
|
|
||||||
repo_defaults,
|
|
||||||
self.top_repo_path)
|
|
||||||
|
|
||||||
return repo_dict
|
|
||||||
|
|
||||||
def get_bitbake_targets(self):
|
def get_bitbake_targets(self):
|
||||||
"""
|
"""
|
||||||
|
Loading…
Reference in New Issue
Block a user