HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/duplicity/backends/__pycache__/rclonebackend.cpython-310.pyc
o

�*pa��@svddlmZe��ddlZddlZddlmZddlmZddlm	Z	ddl
ZGdd�dejj�Z
ej�de
�dS)	�)�standard_libraryN)�log)�util)�BackendExceptionc@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�
RcloneBackendcCs�tjj�||�||_|jj|_d|_z
|�|jd�\}}}Wnt	y1t
�dt
jj
�Ynwt
��}|t
jkrAdtjd<n |t
jkrLdtjd<n|t
jkrWdtjd<n
|t
jkradtjd<|j�d	�rt|jd
d��ddd
�|_t�|j�|_dS)N�rclonez versionz'rclone not found: please install rclone�DEBUG�RCLONE_LOG_LEVEL�INFO�NOTICE�ERRORz//�z:/�:�)�	duplicity�backend�Backend�__init__�
parsed_url�path�remote_path�
rclone_cmd�_subprocess_safe_popen�	Exceptionr�
FatalError�	ErrorCode�
backend_error�getverbosityr�os�environr
rr�
startswith�replacer�fsdecode)�selfr�rc�o�e�verb�r(�B/usr/lib/python3/dist-packages/duplicity/backends/rclonebackend.pyr$s*
�




zRcloneBackend.__init__cCsdt�|�}t�|j�}d|j|j||f}|�|�\}}}|dkr0tj�|�r,t�	|�t
|��dS)Nz%s copyto '%s/%s' '%s'r)rr"�namerrrrr�isfile�remover)r#�remote_filename�
local_path�local_pathname�commandliner$r%r&r(r(r)�_get>s
�
�zRcloneBackend._getcCsNt�|j�}t�|�}d|j||j|f}|�|�\}}}|dkr%t|��dS)Nz%s copyto '%s' '%s/%s'r)rr"r*rrrr)r#�source_pathr-�source_pathnamer0r$r%r&r(r(r)�_putIs
��zRcloneBackend._putcCs\g}d|j|jf}|�|�\}}}|dkr|S|dkr t|��|s$|Sdd�|�d�D�S)Nz%s lsf '%s'�rcSsg|]	}|rt�|��qSr()r�fsencode)�.0�xr(r(r)�
<listcomp>]sz'RcloneBackend._list.<locals>.<listcomp>�
)rrrr�split)r#�filelistr0r$r%r&r(r(r)�_listRs�zRcloneBackend._listcCs@t�|�}d|j|j|f}|�|�\}}}|dkrt|��dS)Nz-%s deletefile --drive-use-trash=false '%s/%s'r)rr"rrrr)r#r-r0r$r%r&r(r(r)�_delete_s

��zRcloneBackend._deletec
Csnddl}ddlm}m}|�|�}||||dd�}|��\}}|�d�D]}	t|	�dkr0t|	�q$|j||fS)Nr)�Popen�PIPET)�stdout�stderr�universal_newlinesr:r)	�shlex�
subprocessr?r@r;�communicate�len�print�
returncode)
r#r0rDr?r@�args�prArB�lr(r(r)rgs
�z$RcloneBackend._subprocess_safe_popenN)	�__name__�
__module__�__qualname__rr1r4r=r>rr(r(r(r)r"s	
rr)�futurer�install_aliasesr�os.pathrrr�duplicity.errorsr�duplicity.backendrrr�register_backendr(r(r(r)�<module>sQ