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:
		
				
					committed by
					
						
						Jan Kiszka
					
				
			
			
				
	
			
			
			
						parent
						
							a9cc7d06b3
						
					
				
				
					commit
					cbdba7e8e1
				
			@@ -57,7 +57,7 @@ class Config:
 | 
				
			|||||||
                                       'must be outside of versioning control')
 | 
					                                       'must be outside of versioning control')
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            self.filenames = [os.path.join(ctx.kas_work_dir, CONFIG_YAML_FILE)]
 | 
					            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.handler = IncludeHandler(self.filenames, self.top_repo_path)
 | 
				
			||||||
        self.repo_dict = self._get_repo_dict()
 | 
					        self.repo_dict = self._get_repo_dict()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -378,9 +378,8 @@ def ssh_no_host_key_check():
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
def setup_parser_common_args(parser):
 | 
					def setup_parser_common_args(parser):
 | 
				
			||||||
    parser.add_argument('config',
 | 
					    parser.add_argument('config',
 | 
				
			||||||
                        help='Config file, using .config.yaml if none is '
 | 
					                        help='Config file, using .config.yaml in KAS_WORK_DIR '
 | 
				
			||||||
                        'specified and using the current directory as '
 | 
					                        'if none is specified',
 | 
				
			||||||
                        'repository anchor',
 | 
					 | 
				
			||||||
                        nargs='?')
 | 
					                        nargs='?')
 | 
				
			||||||
    parser.add_argument('--skip',
 | 
					    parser.add_argument('--skip',
 | 
				
			||||||
                        help='Skip build steps',
 | 
					                        help='Skip build steps',
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user