mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:45:14 +00:00 
			
		
		
		
	[compat] Fix shutils.move in restricted ACL mode on BSD (#5309)
				
					
				
			Authored by: ClosedPort22, pukkandan
This commit is contained in:
		
							
								
								
									
										30
									
								
								yt_dlp/compat/shutil.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								yt_dlp/compat/shutil.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,30 @@ | ||||
| # flake8: noqa: F405 | ||||
| from shutil import *  # noqa: F403 | ||||
| 
 | ||||
| from .compat_utils import passthrough_module | ||||
| 
 | ||||
| passthrough_module(__name__, 'shutil') | ||||
| del passthrough_module | ||||
| 
 | ||||
| 
 | ||||
| import sys | ||||
| 
 | ||||
| if sys.platform.startswith('freebsd'): | ||||
|     import errno | ||||
|     import os | ||||
|     import shutil | ||||
| 
 | ||||
|     # Workaround for PermissionError when using restricted ACL mode on FreeBSD | ||||
|     def copy2(src, dst, *args, **kwargs): | ||||
|         if os.path.isdir(dst): | ||||
|             dst = os.path.join(dst, os.path.basename(src)) | ||||
|         shutil.copyfile(src, dst, *args, **kwargs) | ||||
|         try: | ||||
|             shutil.copystat(src, dst, *args, **kwargs) | ||||
|         except PermissionError as e: | ||||
|             if e.errno != getattr(errno, 'EPERM', None): | ||||
|                 raise | ||||
|         return dst | ||||
| 
 | ||||
|     def move(*args, copy_function=copy2, **kwargs): | ||||
|         return shutil.move(*args, copy_function=copy_function, **kwargs) | ||||
| @@ -1,7 +1,7 @@ | ||||
| import os | ||||
| import shutil | ||||
| 
 | ||||
| from .common import PostProcessor | ||||
| from ..compat import shutil | ||||
| from ..utils import ( | ||||
|     PostProcessingError, | ||||
|     decodeFilename, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 ClosedPort22
					ClosedPort22