31 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import os
 | |
| 
 | |
| AUFS_METADATA = u'.wh..wh.'
 | |
| AUFS_WHITEOUT = u'.wh.'
 | |
| AUFS_WHITEOUT_PREFIX_LENGTH = len(AUFS_WHITEOUT)
 | |
| 
 | |
| def is_aufs_metadata(absolute):
 | |
|   """ Returns whether the given absolute references an AUFS metadata file. """
 | |
|   filename = os.path.basename(absolute)
 | |
|   return filename.startswith(AUFS_METADATA) or absolute.startswith(AUFS_METADATA)
 | |
| 
 | |
| def get_deleted_filename(absolute):
 | |
|   """ Returns the name of the deleted file referenced by the AUFS whiteout file at
 | |
|       the given path or None if the file path does not reference a whiteout file.
 | |
|   """
 | |
|   filename = os.path.basename(absolute)
 | |
|   if not filename.startswith(AUFS_WHITEOUT):
 | |
|     return None
 | |
| 
 | |
|   return filename[AUFS_WHITEOUT_PREFIX_LENGTH:]
 | |
| 
 | |
| def get_deleted_prefix(absolute):
 | |
|   """ Returns the path prefix of the deleted file referenced by the AUFS whiteout file at
 | |
|      the given path or None if the file path does not reference a whiteout file.
 | |
|   """
 | |
|   deleted_filename = get_deleted_filename(absolute)
 | |
|   if deleted_filename is None:
 | |
|     return None
 | |
| 
 | |
|   dirname = os.path.dirname(absolute)
 | |
|   return os.path.join('/', dirname, deleted_filename)[1:]
 |