Sindbad~EG File Manager
3
\b�@slddlZddlZddlmZmZddlmZiaddd�Zddd �Z dd
d�Z
dd
�Zddd�Zdd�Z
dS)�N)�DistutilsFileError�DistutilsInternalError)�log��cCspt|t�std|f��tjj|�}g}tjj|�s<|dkr@|Stjtjj |��rV|Stjj
|�\}}|g}x6|r�|r�tjj|�r�tjj
|�\}}|jd|�qnWx�|D]�}tjj||�}tjj |�} tj| �r�q�|dkr�t
jd|�|�s`ytj||�WnVtk
�rT}
z8|
jtjk�o*tjj|��sDtd||
jdf��WYdd}
~
XnX|j|�dt| <q�W|S)Nz(mkpath: 'name' must be a string (got %r)�rrzcreating %szcould not create '%s': %s���)�
isinstance�strr�os�path�normpath�isdir�
_path_created�get�abspath�split�insert�joinr�info�mkdir�OSError�errnoZEEXISTr�args�append)�name�mode�verbose�dry_runZcreated_dirs�head�tailZtails�dZabs_head�exc�r#�*/usr/lib64/python3.6/distutils/dir_util.py�mkpaths>
&
r%cCsVt�}x(|D] }|jtjj|tjj|���qWx t|�D]}t||||d�q:WdS)N)rr)�set�addrrr�dirname�sortedr%)Zbase_dir�filesrrrZneed_dir�file�dirr#r#r$�create_treePs
r-cCsfddlm}|r,tjj|�r,td|��ytj|�} Wn>tk
rx}
z"|rVg} ntd||
jf��WYdd}
~
XnX|s�t ||d�g}x�| D]�}tjj
||�}
tjj
||�}|jd�r�q�|o�tjj|
��rtj
|
�}|dkr�tjd||�|�stj||�|j|�q�tjj|
��r>|jt|
|||||||d ��q�||
||||||d �|j|�q�W|S)
Nr)� copy_filez&cannot copy tree '%s': not a directoryzerror listing files in '%s': %s)rz.nfsrzlinking %s -> %s)rr)Zdistutils.file_utilr.rrrr�listdirr�strerrorr%r�
startswith�islink�readlinkrr�symlinkr�extend� copy_tree)�src�dstZ
preserve_modeZpreserve_timesZpreserve_symlinks�updaterrr.�names�eZoutputs�nZsrc_nameZdst_nameZ link_destr#r#r$r6csH
"
r6cCslxVtj|�D]H}tjj||�}tjj|�rDtjj|�rDt||�q|jtj|f�qW|jtj |f�dS)N)
rr/rrrr2�_build_cmdtupler�remove�rmdir)r� cmdtuples�fZreal_fr#r#r$r=�sr=cCs�|dkrtjd|�|rdSg}t||�xp|D]h}y2|d|d�tjj|d�}|tkrdt|=Wq0tk
r�}ztjd||�WYdd}~Xq0Xq0WdS)Nrz'removing '%s' (and everything under it)rzerror removing %s: %s) rrr=rrrrr�warn)Z directoryrrr@�cmdrr"r#r#r$�remove_tree�s
rDcCs6tjj|�\}}|dd�tjkr2||dd�}|S)Nrr)rr�
splitdrive�sep)rZdriver#r#r$�ensure_relative�srG)rrr)rrr)rrrrrr)rr)rrZdistutils.errorsrrZ distutilsrrr%r-r6r=rDrGr#r#r#r$�<module>s
?
D
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists