Move logic for tracking the build log into package.py (since that is what is
managing the build log) and expose as package.build_log_path.
This commit is contained in:
		@@ -97,21 +97,14 @@ def create_test_output(topSpec, newInstalls, output):
 | 
			
		||||
        bId = BuildId(spec.name, spec.version, spec.dag_hash())
 | 
			
		||||
 | 
			
		||||
        package = spack.db.get(spec)
 | 
			
		||||
        if package.installed:
 | 
			
		||||
            buildLogPath = spack.install_layout.build_log_path(spec)
 | 
			
		||||
        else:
 | 
			
		||||
            #TODO: search recursively under stage.path instead of only within
 | 
			
		||||
            #    stage.source_path
 | 
			
		||||
            buildLogPath = join_path(package.stage.source_path, 'spack-build.out')            
 | 
			
		||||
 | 
			
		||||
        with open(buildLogPath, 'rb') as F:
 | 
			
		||||
        with open(package.build_log_path, 'rb') as F:
 | 
			
		||||
            lines = F.readlines()
 | 
			
		||||
            errMessages = list(line for line in lines if
 | 
			
		||||
                re.search('error:', line, re.IGNORECASE))
 | 
			
		||||
            errOutput = errMessages if errMessages else lines[-10:]
 | 
			
		||||
            errOutput = '\n'.join(itertools.chain(
 | 
			
		||||
                    [spec.to_yaml(), "Errors:"], errOutput, 
 | 
			
		||||
                    ["Build Log:", buildLogPath]))
 | 
			
		||||
                    ["Build Log:", package.build_log_path]))
 | 
			
		||||
            
 | 
			
		||||
            output.add_test(bId, package.installed, errOutput)
 | 
			
		||||
        
 | 
			
		||||
 
 | 
			
		||||
@@ -863,6 +863,14 @@ def do_install_dependencies(self, **kwargs):
 | 
			
		||||
            dep.package.do_install(**kwargs)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def build_log_path(self):
 | 
			
		||||
        if self.installed:
 | 
			
		||||
            return spack.install_layout.build_log_path(spec)
 | 
			
		||||
        else:
 | 
			
		||||
            return join_path(self.stage.source_path, 'spack-build.out')   
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def module(self):
 | 
			
		||||
        """Use this to add variables to the class's module's scope.
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user