Viewing File: /usr/lib/python3.6/site-packages/dnf-plugins/__pycache__/universal_hooks.cpython-36.pyc

3

���_�@sddlZddlZddlZddlZddlmZddlZddlZddlZddlZddl	m
Z
eje�Z
e
jej�e
jejej��Gdd�de
�ZGdd�dejd�ZGd	d
�d
e�Ze�Zddd
�ZGdd�dejd�ZGdd�de�Zdd�Zdd�Zdd�ZdS)�N)�path)�PlugincsPeZdZdZ�fdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
�ZS)�UniversalHooksPluginzuniversal-hookscst�j||�d|_dS)Nz/etc/dnf/universal-hooks)�super�__init__�	hook_root)�self�baseZcli)�	__class__��%/usr/lib/python3.6/universal_hooks.pyr,szUniversalHooksPlugin.__init__cCsttj|j|jj�t�dS)N)�_run_dirr�joinr�
pre_config�__name__�LOG)rrrrr0szUniversalHooksPlugin.pre_configcCsttj|j|jj�t�dS)N)r
rrr�configrr)rrrrr3szUniversalHooksPlugin.configcCsttj|j|jj�t�dS)N)r
rrr�resolvedrr)rrrrr6szUniversalHooksPlugin.resolvedcCsttj|j|jj�t�dS)N)r
rrr�sackrr)rrrrr9szUniversalHooksPlugin.sackcCs8|jj}t|jt|t|jj��tt	j
|j|�t�dS)N)�pre_transactionr�
_run_pkg_dirsrr�DnfTransactionInfor	�transactionr
rr)r�namerrrr<sz$UniversalHooksPlugin.pre_transactioncCs8|jj}t|jt|t|jj��ttj	|j|�t�dS)N)
rrrrrrr	r
rr)rrrrrrAsz UniversalHooksPlugin.transaction)r�
__module__�__qualname__rrrrrrrr�
__classcell__rr)r
rr)src@sDeZdZejdd��Zejdd��Zejdd��Zejdd��Zd	S)
�
FileSystemcCsdS)Nr)r�pathnamerrr�globHszFileSystem.globcCsdS)Nr)rrrrr�isdirLszFileSystem.isdircCsdS)Nr)rr�moderrr�accessPszFileSystem.accesscCsdS)Nr)rr!�encodingrrr�NamedTemporaryFileTszFileSystem.NamedTemporaryFileN)	rrr�abc�abstractmethodrr r"r$rrrrrGsr)�	metaclassc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�RealFileSystemcCs
tj|�S)N)r)rrrrrrZszRealFileSystem.globcCs
tj|�S)N)rr )rrrrrr ]szRealFileSystem.isdircCstj||�S)N)�osr")rrr!rrrr"`szRealFileSystem.accesscCstj||d�S)N)r!r#)�tempfiler$)rr!r#rrrr$csz!RealFileSystem.NamedTemporaryFileN)rrrrr r"r$rrrrr(Ysr(�cCs�tj|�sdSxxttj|d��D]b}tj|�r2q"tj|tj�rx|�d|��}tj|dd�}d|j	kr�|j
d||j	�q"|j
d|�q"WdS)Nz/*� T)�shellrz!!! %s did not exit cleanly: %dz!!! %s is not executable)�fsr �sortedrr"r)�X_OK�
subprocessZrun�
returncode�error)Zhook_dir�log�argsZscriptZcmdlineZ	completedrrrr
js


r
c@seZdZejdd��ZdS)�TransactionInfocCsdS)Nr)rrrr�
getMembers|szTransactionInfo.getMembersN)rrrr%r&r7rrrrr6{sr6c@s"eZdZdd�dd�Zdd�ZdS)rN)�returncCs
||_dS)N)r)rrrrrr�szDnfTransactionInfo.__init__cCs|jS)N)r)rrrrr7�szDnfTransactionInfo.getMembers)rrrrr7rrrrr�srcCs�tj|d|�}t|�}i}tjddd���}i}|j�}	x�tt|	�dd�d�D]h}
|
j}||kr`qLd||<|j	|d	�t
tj|d
||�|�x&|j�D]\}}
|
j|�r�d||<q�WqLW|j
�x&|D]}t
tj||�|d|j�q�WWdQRXdS)
zu

    :param str base_dir:
    :param logging.Logger log:
    :param str slot:
    :param TransactionInfo tinfo:
    Z
multi_pkgs�wzutf-8)r!r#cSs|jS)N)r)�mrrr�<lambda>�sz_run_pkg_dirs.<locals>.<lambda>)�key��
Zpkgsz--pkg_list=N)rr�_make_dir_matchersr.r$r7r/�setr�writer
�items�search�flush)Zbase_dirr4ZslotZtinfoZ
wildcard_path�dir_matchersZwildcard_to_runZ
temp_pkg_fileZmembers_seen�members�memberZpkgZwildcard_dirZmatcherrrrr�s&	

rcCsFi}x<tj|d�D]*}tj|�rtjtj|��}t|�||<qW|S)Nz/*)r.rr r�basename�normpath�_regex_from_dir)Zwc_slot_dirrEZpthrrrr?�s
r?cCs|jdd�}tjd|d�S)NZ__WILDCARD__z.*�^�$)�replace�re�compile)r�exprrrrrJ�srJ)r+)r%rZloggingr)rrNr1�sysr*ZdnfrZ	getLoggerrrZsetLevelZERRORZ
addHandlerZ
StreamHandler�stderrr�ABCMetarr(r.r
r6rrr?rJrrrr�<module>s,

&	
Back to Directory File Manager
<