Current File : //usr/lib64/python3.6/site-packages/borg/__pycache__/xattr.cpython-36.pyc |
3
y��b�@ � @ s� d Z ddlZddlZddlZddlZddlZddlZddlmZm Z m
Z
mZmZm
Z
mZmZ ddlmZ ddlmZ ddlmZmZ y
ejZW n ek
r� ejZY nX ee dGd
�ZdHdd�ZdIdd�ZdZde Zde Z ej!j"d�p�ed�Z#e#dk�r8ej$j%d��rdZ#n(ej$dk�r"dZ#ne&eej'd� e(e��dZ)ej$j%d��r�ej!j"dd�Z*ej+de*�Z,xde,D ]\Z-e-j%d��rjed
d�Z.ej/d d!ge.d"�Z0ee0j1d#�j+� dJ �Z2e2ed$�k�r�e-Z#d
Z)P �qjW yee#d
d%�Z3W n0 e4k
�r
Z5 ze(e e5 ��W Y ddZ5[5X nX d&d'� Z6d(d)� Z7G d*d+� d+e(�Z8dKd,d-�Z9d.d/� Z:d0d1� Z;d2d3� Z<ej$j%d��rbeeefe3j=_>e
e3j=_?eeefe3j@_>e
e3j@_?e
eefe3jA_>e
e3jA_?eeeee
fe3jB_>e
e3jB_?eeeee
fe3jC_>e
e3jC_?e
eeee
fe3jD_>e
e3jD_?eeeefe3jE_>e
e3jE_?eeeefe3jF_>e
e3jF_?e
eeefe3jG_>e
e3jG_?d
d4�d5d6�Z=d
d4�d7d8�ZEd
d4�d9d:�ZB�n:ej$dk�rDeeee
fe3j=_>e
e3j=_?e
eee
fe3jA_>e
e3jA_?eeeeee
fe3jB_>e
e3jB_?e
eeeee
fe3jD_>e
e3jD_?eeeeee
fe3jE_>e
e3jE_?e
eeeee
fe3jG_>e
e3jG_?dZHdZId
d4�d;d6�Z=d
d4�d<d8�ZEd
d4�d=d:�ZB�nXej$j%d>��rre
e
eefe3jJ_>e
e3jJ_?ee
eefe3jK_>e
e3jK_?ee
eefe3jL_>e
e3jL_?e
e
eeefe3jM_>e
e3jM_?ee
eeefe3jN_>e
e3jN_?ee
eeefe3jO_>e
e3jO_?e
e
eeefe3jP_>e
e3jP_?ee
eeefe3jQ_>e
e3jQ_?ee
eeefe3jR_>e
e3jR_?d ZSZTdL\ZUZVd
d4�dAd6�Z=d
d4�dBd8�ZEd
d4�dCd:�ZBn*d
d4�dDd6�Z=d
d4�dEd8�ZEd
d4�dFd:�ZBdS )MzRA basic extended attributes (xattr) implementation for Linux, FreeBSD and MacOS X.� N)�CDLL�create_string_buffer� c_ssize_t�c_size_t�c_char_p�c_int�c_uint32� get_errno)�find_library)�parse� )�Buffer�prepare_subprocess_env� � )�limitc C sV t j| dd��>}yt|j� dd� W n tk
r8 dS X t|j� d�dkS Q R X dS )z4Determine if xattr is enabled on the filesystem
zborg-tmp)�dir�prefixz user.names valueFN)�tempfileZNamedTemporaryFile�setxattr�fileno�OSError�getxattr)�path�fd� r �/usr/lib64/python3.6/xattr.py�
is_enabled s r Tc C s� yhi }t | |d�}xR|D ]J}yt| ||d�||<