Viewing File: /opt/hc_python/lib/python3.12/site-packages/pre_commit/languages/__pycache__/docker.cpython-312.pyc

�

i0i$����ddlmZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZddlm
Z
ddlmZddlmZdZd	Zej&Zej*Zej.Zej2d
ej4�Zdd�Zdd�Zdd
�Zdd�Z						dd�Z 								dd�Z!ejDd��dd��Z#dd�Z$d d�Z%d d�Z&																d!d�Z'y)"�)�annotationsN)�Sequence)�	lang_base)�Prefix)�CalledProcessError)�cmd_output_b�docker�
PRE_COMMITsg
    /containers
    (?:/overlay-containers)?
    /([a-z0-9]{64})
    (?:/userdata)?
    /hostname
    c�.�tjt�5tdd�5}|D]@}tj|�}|s�|dj
�ccddd�cddd�S	ddd�ddd�y#1swY�xYw#1swYyxYw)Nz/proc/1/mountinfo�rb�)�
contextlib�suppress�FileNotFoundError�open�_HOSTNAME_MOUNT_RE�search�decode)�f�line�ms   �J/opt/hc_python/lib/python3.12/site-packages/pre_commit/languages/docker.py�_get_container_idr"s|��	�	�	�.�	/�
�%�t�
,����&�-�-�d�3����Q�4�;�;�=�(�	-�
,�
0�	/��-�
0��
-�
,��
0��s4�
B�A?�A?�	B�,A?�.B�?B	�B�Bc�.�t�}|�|S	tdd|�\}}}tj|�\}|dD]D}|d}|d}t
jj||f�|k(s�2|j||�cS|S#t$r|cYSwxYw)Nr	�inspect�Mounts�Source�Destination)	rrr�json�loads�os�path�
commonpath�replace)r"�container_id�_�out�	container�mount�src_path�to_paths        r�_get_docker_pathr,-s���$�&�L������ ��9�l�C�	��3��
���C��J�I��8�$����?���
�&��
�7�7���t�W�o�.�'�9��<�<���2�2�
%��K�������s�B�B�Bc�d�tj|j��j�S)N)�hashlib�md5�encode�	hexdigest)�ss rr/r/Es ���;�;�q�x�x�z�"�,�,�.�.�c��ttjj|j��j�}d|��S)Nzpre-commit-)r/r!r"�basename�
prefix_dir�lower)�prefix�md5sums  r�
docker_tagr:Is7��
����!�!�&�"3�"3�4�
5�
;�
;�
=�F�
���!�!r3c�r�dddt|�dtf}|r|dz
}|dz
}tj||�y)Nr	�buildz--tagz--label)z--pull)�.)r:�PRE_COMMIT_LABELr�	setup_cmd)r8�pull�cmds   r�build_docker_imagerBNsH��	�'���F�#��#��C�
��{����6�M�C�
�����$r3c���tjd|�tjd|�tj|t|�}t|d��t
j|�y)Nr	T�r@)r�assert_version_default�assert_no_additional_deps�environment_dir�ENVIRONMENT_DIRrBr!�mkdir)r8�version�additional_dependencies�	directorys    r�install_environmentrM_sQ���$�$�X�w�7�
�'�'��2I�J��)�)�&�/�7�K�I��v�D�)��H�H�Y�r3r
)�maxsizec���tddddd�\}}}|dk7rytj|�}	d|jd	�xsd
vxs|ddd
S#t$rYywxYw)Nr	�system�infoz--formatz{{ json . }}rFz
name=rootless�SecurityOptions��host�security�rootless)rrr �get�KeyError)�retcoder'r&rQs    r�_is_rootlessrZms���"��(�F�J���O�G�S�!��!�|���:�:�c�?�D�
�
����):� ;� A�r�B�
1�
��L��$�Z�0�
	
������s�#A�	A �A c��t�ry	dtj��dtj���fS#t$rYywxYw)NrSz-u�:)rZr!�getuid�getgid�AttributeErrorrSr3r�get_docker_userr`�sC���~��������
�Q�r�y�y�{�m�4�5�5������s�,:�	A�Ac��|rdSdS)N)z--ttyrSrS��colors r�get_docker_ttyrd�s���J�(�R�(r3c��dddgt|���t��d�ttj���d��d�d��S)	Nr	�runz--rmrbz-vz
:/src:rw,Zz	--workdirz/src)rdr`r,r!�getcwdrbs r�
docker_cmdrh�sk���%��
�
�e�	$�
�
�	�	
�	
�
�"�"�)�)�+�.�/�z�:�
�	�
��
�
r3c��t|d��tj||�^}}d|t|�f}	tjgt|���|	�|��|||��S)NFrDz--entrypointrb)�require_serialrc)rBr�hook_cmdr:�	run_xargsrh)
r8�entry�args�	file_args�is_localrjrc�	entry_exe�cmd_rest�	entry_tags
          r�run_hookrt�si���v�E�*�$�-�-�e�T�:��I����J�v�,>�?�I����9�*�5�
!�9�I�9��9��%��	�r3)�returnz
str | None)r"�strrurv)r2rvrurv)r8rrurv)r8rr@�boolru�None)r8rrJrvrK�
Sequence[str]rurx)rurw)ru�tuple[str, ...])rcrwrurz)r8rrmrvrnryroryrprwrjrwrcrwruztuple[int, bytes])(�
__future__rr�	functoolsr.rr!�re�collections.abcr�
pre_commitr�pre_commit.prefixr�pre_commit.utilrrrHr>�basic_get_default_version�get_default_version�basic_health_check�health_check�no_env�in_env�compile�VERBOSErrr,r/r:rBrM�	lru_cacherZr`rdrhrtrSr3r�<module>r�sP��"�����	�	�$� �$�.�(������9�9���+�+��	�	�	���R�Z�Z���J�J�	����0/�"�
%��%��%�
�	%�"���!$��?L��	������Q��� ��*�)���������!�	��
������r3
Back to Directory File Manager