config: Fix repo-relative include file handling if no config file is given

If we do not specify a configuration file for the "kas build" command,
the repository anchor is set to the current working directory,
which breaks the resolution of repo-relative include file paths
in the IncludeHandler class if repo root != current working directory.

Sets the repository anchor to the root path of the repository with
fallback to KAS_WORK_DIR if we use .config.yaml from KAS_WORK_DIR.

Signed-off-by: Johann Neuhauser <jneuhauser@dh-electronics.com>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
This commit is contained in:
Johann Neuhauser 2022-07-29 07:46:18 +02:00 committed by Jan Kiszka
parent a9cc7d06b3
commit cbdba7e8e1
2 changed files with 3 additions and 4 deletions

View File

@ -57,7 +57,7 @@ class Config:
'must be outside of versioning control')
else:
self.filenames = [os.path.join(ctx.kas_work_dir, CONFIG_YAML_FILE)]
self.top_repo_path = os.getcwd()
self.top_repo_path = Repo.get_root_path(ctx.kas_work_dir)
self.handler = IncludeHandler(self.filenames, self.top_repo_path)
self.repo_dict = self._get_repo_dict()

View File

@ -378,9 +378,8 @@ def ssh_no_host_key_check():
def setup_parser_common_args(parser):
parser.add_argument('config',
help='Config file, using .config.yaml if none is '
'specified and using the current directory as '
'repository anchor',
help='Config file, using .config.yaml in KAS_WORK_DIR '
'if none is specified',
nargs='?')
parser.add_argument('--skip',
help='Skip build steps',