Report encoding errors nicely.
This commit is contained in:
		
					parent
					
						
							
								b9ddbb1aa0
							
						
					
				
			
			
				commit
				
					
						3782656569
					
				
			
		
					 1 changed files with 17 additions and 11 deletions
				
			
		| 
						 | 
					@ -100,6 +100,7 @@ class CdistEntityError(Error):
 | 
				
			||||||
        for name, path in stdpaths:
 | 
					        for name, path in stdpaths:
 | 
				
			||||||
            if name not in result:
 | 
					            if name not in result:
 | 
				
			||||||
                result[name] = []
 | 
					                result[name] = []
 | 
				
			||||||
 | 
					            try:
 | 
				
			||||||
                if os.path.exists(path) and os.path.getsize(path) > 0:
 | 
					                if os.path.exists(path) and os.path.getsize(path) > 0:
 | 
				
			||||||
                    output = []
 | 
					                    output = []
 | 
				
			||||||
                    label_begin = name + ":" + header_name
 | 
					                    label_begin = name + ":" + header_name
 | 
				
			||||||
| 
						 | 
					@ -111,6 +112,11 @@ class CdistEntityError(Error):
 | 
				
			||||||
                        output.append(fd.read())
 | 
					                        output.append(fd.read())
 | 
				
			||||||
                    output.append('\n')
 | 
					                    output.append('\n')
 | 
				
			||||||
                    result[name].append(''.join(output))
 | 
					                    result[name].append(''.join(output))
 | 
				
			||||||
 | 
					            except UnicodeError as ue:
 | 
				
			||||||
 | 
					                result[name].append(('Cannot output {}:{} due to: {}.\n'
 | 
				
			||||||
 | 
					                                     'You can try to read the error file "{}"'
 | 
				
			||||||
 | 
					                                     ' yourself.').format(
 | 
				
			||||||
 | 
					                                         name, header_name, ue, path))
 | 
				
			||||||
        return result
 | 
					        return result
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _stderr(self):
 | 
					    def _stderr(self):
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue