Edit File: universal_hooks.cpython-36.pyc
3 ���_������������������@���s��d�dl�Z�d�dlZd�dlZd�dlZd�dlmZ�d�dlZd�dlZd�dlZd�dlZd�dl m Z �eje�Z e jej��e jejej���G�dd��de �ZG�dd��de�jd�ZG�d d ��d e�Ze��Zddd �ZG�dd��de�jd�ZG�dd��de�Zdd��Zdd��Zdd��ZdS�)�����N)�path)�Pluginc�������������������sP���e�Zd�ZdZ��fdd�Zdd��Zdd��Zdd ��Zd d��Zdd ��Z dd��Z ���ZS�)�UniversalHooksPluginzuniversal-hooksc����������������s���t���j||��d|�_d�S�)Nz/etc/dnf/universal-hooks)�super�__init__� hook_root)�self�baseZcli)� __class__���%/usr/lib/python3.6/universal_hooks.pyr���,���s����zUniversalHooksPlugin.__init__c�������������C���s���t�tj|�j|�jj�t��d�S�)N)�_run_dirr����joinr���� pre_config�__name__�LOG)r���r���r���r���r���0���s����zUniversalHooksPlugin.pre_configc�������������C���s���t�tj|�j|�jj�t��d�S�)N)r ���r���r���r����configr���r���)r���r���r���r���r���3���s����zUniversalHooksPlugin.configc�������������C���s���t�tj|�j|�jj�t��d�S�)N)r ���r���r���r����resolvedr���r���)r���r���r���r���r���6���s����zUniversalHooksPlugin.resolvedc�������������C���s���t�tj|�j|�jj�t��d�S�)N)r ���r���r���r����sackr���r���)r���r���r���r���r���9���s����zUniversalHooksPlugin.sackc�������������C���s8���|�j�j}t|�jt|t|�jj���tt j |�j|�t��d�S�)N)�pre_transactionr���� _run_pkg_dirsr���r����DnfTransactionInfor ����transactionr ���r���r���)r����namer���r���r���r���<���s����z$UniversalHooksPlugin.pre_transactionc�������������C���s8���|�j�j}t|�jt|t|�jj����ttj |�j|�t��d�S�)N) r���r���r���r���r���r���r ���r ���r���r���)r���r���r���r���r���r���A���s����z UniversalHooksPlugin.transaction)r���� __module__�__qualname__r���r���r���r���r���r���r���r���� __classcell__r���r���)r ���r���r���)���s���r���c���������������@���sD���e�Zd�Zejdd���Zejdd���Zejdd���Zejdd���Zd S�) � FileSystemc�������������C���s���d�S�)Nr���)r����pathnamer���r���r����globH���s����zFileSystem.globc�������������C���s���d�S�)Nr���)r���r���r���r���r����isdirL���s����zFileSystem.isdirc�������������C���s���d�S�)Nr���)r���r����moder���r���r����accessP���s����zFileSystem.accessc�������������C���s���d�S�)Nr���)r���r!����encodingr���r���r����NamedTemporaryFileT���s����zFileSystem.NamedTemporaryFileN) r���r���r����abc�abstractmethodr���r ���r"���r$���r���r���r���r���r���G���s���r���)� metaclassc���������������@���s,���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd S�) �RealFileSystemc�������������C���s ���t�j�|�S�)N)r���)r���r���r���r���r���r���Z���s����zRealFileSystem.globc�������������C���s ���t�j|�S�)N)r���r ���)r���r���r���r���r���r ���]���s����zRealFileSystem.isdirc�������������C���s���t�j||�S�)N)�osr"���)r���r���r!���r���r���r���r"���`���s����zRealFileSystem.accessc�������������C���s���t�j||d�S�)N)r!���r#���)�tempfiler$���)r���r!���r#���r���r���r���r$���c���s����z!RealFileSystem.NamedTemporaryFileN)r���r���r���r���r ���r"���r$���r���r���r���r���r(���Y���s���r(�����c�������������C���s����t�j|��sd�S�xxtt�j|�d���D�]b}t�j|�r2q"t�j|tj�rx|��d|���}tj|dd�}d|j kr�|j d||j ��q"|j d|��q"W�d�S�)Nz/*� T)�shellr���z!!! %s did not exit cleanly: %dz!!! %s is not executable)�fsr ����sortedr���r"���r)����X_OK� subprocessZrun� returncode�error)Zhook_dir�log�argsZscriptZcmdlineZ completedr���r���r���r ���j���s���� r ���c���������������@���s���e�Zd�Zejdd���ZdS�)�TransactionInfoc�������������C���s���d�S�)Nr���)r���r���r���r���� getMembers|���s����zTransactionInfo.getMembersN)r���r���r���r%���r&���r7���r���r���r���r���r6���{���s���r6���c���������������@���s"���e�Zd�Zdd�dd�Zdd��ZdS�)r���N)�returnc�������������C���s ���||�_�d�S�)N)r���)r���r���r���r���r���r�������s����zDnfTransactionInfo.__init__c�������������C���s���|�j�S�)N)r���)r���r���r���r���r7�������s����zDnfTransactionInfo.getMembers)r���r���r���r���r7���r���r���r���r���r�������s���r���c�������������C���s����t�j|�d|�}t|�}i�}tjddd���}i�}|j��} x�tt| �dd��d�D�]h} | j}||kr`qLd||<�|j |d ���t t�j|�d ||�|��x&|j��D�]\}} | j|�r�d||<�q�W�qLW�|j ���x&|D�]}t t�j||�|d|j���q�W�W�dQ�R�X�dS�) zu :param str base_dir: :param logging.Logger log: :param str slot: :param TransactionInfo tinfo: Z multi_pkgs�wzutf-8)r!���r#���c�������������S���s���|�j�S�)N)r���)�mr���r���r����<lambda>����s����z_run_pkg_dirs.<locals>.<lambda>)�key����� Zpkgsz--pkg_list=N)r���r����_make_dir_matchersr.���r$���r7���r/����setr����writer ����items�search�flush)Zbase_dirr4���ZslotZtinfoZ wildcard_path�dir_matchersZwildcard_to_runZ temp_pkg_fileZmembers_seen�members�memberZpkgZwildcard_dirZmatcherr���r���r���r�������s&���� r���c�������������C���sF���i�}x<t�j|�d��D�]*}t�j|�rtjtj|��}t|�||<�qW�|S�)Nz/*)r.���r���r ���r����basename�normpath�_regex_from_dir)Zwc_slot_dirrE���Zpthr���r���r���r?�������s���� r?���c�������������C���s���|�j�dd�}tjd|�d��S�)NZ__WILDCARD__z.*�^�$)�replace�re�compile)r����exprr���r���r���rJ�������s����rJ���)r+���)r%���r���Zloggingr)���r���rN���r1����sysr*���Zdnfr���Z getLoggerr���r���ZsetLevelZERRORZ addHandlerZ StreamHandler�stderrr����ABCMetar���r(���r.���r ���r6���r���r���r?���rJ���r���r���r���r����<module>���s,��� &