관리-도구
편집 파일: repomanage.cpython-39.pyc
a �����&cJ)����������������������@���sz���d�dl�mZ�d�dl�mZ�d�dlmZmZ�d�dlZd�dlZd�dlZd�dl Z d�dl Z G�dd��dej�ZG�dd��dej j�ZdS�) �����)�absolute_import)�unicode_literals)�_�loggerNc�����������������������s ���e�Zd�ZdZ��fdd�Z���ZS�)� RepoManage� repomanagec��������������������s,���t�t|���||��|d�u�rd�S�|�t��d�S��N)�superr����__init__Zregister_command�RepoManageCommand)�self�base�cli�� __class__���:/usr/lib/python3.9/site-packages/dnf-plugins/repomanage.pyr ���$���s����zRepoManage.__init__)�__name__� __module__�__qualname__�namer ���� __classcell__r���r���r���r���r��� ���s���r���c�������������������@���s\���e�Zd�ZdZed�Zdd��Zdd��Zdd��Ze d d ���Z e dd���Zd d��Ze dd���Z dS�)r���)r���z"Manage a directory of rpm packagesc�����������������C���s(���|�j�js$|�j�js$|�jjtjtjd��d�S�)N)�stdout�stderr)�opts�verbose�quietr���Zredirect_logger�loggingZWARNING�INFO�r���r���r���r���� pre_configure/���s����zRepoManageCommand.pre_configurec�����������������C���s,���|�j�js|�j�js|�j����|�jj}d|_d�S�)NT)r���r���r���r���Zredirect_repo_progress�demandsZsack_activation)r���r!���r���r���r���� configure3���s���� zRepoManageCommand.configurec�����������"��� ������s�����j�jr ��j�jr tj�td�����j�jr@��j�jr@tj�td�����j�jr`��j�jr`tj�td�����j�jsx��j�jsxd��j�_i�}i�}i�}t��}t ��j�j �}z�d}��jjj |��jj��j�jgd�}|j������j�|��tjj�r6��j������jj���}|D�]@} | ���|kr�|�| �����|�| ���i���| ���g���| ��q�W�n��tjj�y����g�} �����j�jd�} t | �dk�r~tj�td �����jj!ddd ����jj"ddd��z��jj#| ��jj$j%d ��W�n.�t&�y����t'�(td��)d�*| ����Y�n0�Y�n0���jj+j,t-j.d��/��}dd��|j0|j0|d�d��/��D��}|�1���|D�]~} | j2| j3f}||v��rj| ||�v�rt||��| ��n | g||<����4| �}||v��r�||�����5| ���n���5| �g||<��q2g�}t��}��j�j�r||�6��D�]T\}}|||f�}||�d���}|D�]*}���4|�}||�D�]}|�|���q �q�q�|�7��D�]N}t8|�6���}||�d���}|D�](}||�D�]}|�t|�������qZ�qN�q,��j�j�r<|�6��D�]T\}}|||f�}|d�|���}|D�]*}���4|�}||�D�]}|�|���qʐq��q�|�7��D�]N}t8|�6���}|d�|���}|D�](}||�D�]}|�t|�������q�q�q��j�j�rl|�6��D�]T\}}|||f�}|d�|���}|D�]*}���4|�}||�D�]}|�|���q��qt�qNt��}|�7��D�]N}t8|�6���}||�d���}|D�](}||�D�]}|�t|�������q�qԐq�|�7��D�]`}t8|�6���}|d�|���}|D�]:}||�D�]*}|���D�]} | |v�rD|�9| ���qD�q8�q,�q ��fdd�|j0|j0|d�d��/��D��}!||!�}|�1�����j�j:�r�t;d�*|���n|D�]} t;| ���q�d�S�)Nz%Pass either --old or --new, not both!z)Pass either --oldonly or --new, not both!z)Pass either --old or --oldonly, not both!TZrepomanage_repo)Zbaseurlz.rpmr���zNo files to process)�sack�reposF)Zload_system_repoZload_available_repos)�progresszCould not open {}z, )�flagsc�����������������S���s���g�|�]}|�qS�r���r�����.0�xr���r���r���� <listcomp>o��������z)RepoManageCommand.run.<locals>.<listcomp>)Znevra_strict)Zpkg__neqc��������������������s���g�|�]}����|��qS�r���)�_package_to_pathr'���r���r���r���r*�������r+���)Zpkg__eq� )<r����new�old�dnf� exceptions�Errorr���Zoldonly�set�intZkeepr ���r$���Zadd_new_repoZconf�pathZ_repoZexpireZ_add_repo_to_sackZWITH_MODULESZ_setup_modular_excludesZ_moduleContainerZgetModulePackagesZ getRepoID�updateZgetArtifacts� setdefaultZ getNameStreamZ getVersionNum�appendZ RepoError�_get_file_list�len�resetZ fill_sackZadd_remote_rpms�outputr%����IOErrorr���Zwarning�format�joinr#����query�hawkeyZIGNORE_MODULAR_EXCLUDESZ available�filter�sortr����arch�_package_to_nevrar,����keys�values�sorted�add�space�print)"r���ZverfileZpkgdictZmodule_dictZall_modular_artifactsZkeepnumZREPOMANAGE_REPOIDZ repo_confZmodule_packagesZmodule_packageZrpm_listr@���Zpackages�pkgZnaZnevraZoutputpackagesZkeepnum_latest_stream_artifacts�n�aZevrlistZnewevrs�packageZfpkgZstreams_by_versionZsorted_stream_versionsZnew_sorted_stream_versions�i�streamZoldevrsZold_sorted_stream_versionsZkeepnum_newer_stream_artifactsZartifactZmodular_packagesr���r���r����run9���s����� �� &" & zRepoManageCommand.runc�������������� ���C���s����|�j�dddtd�d��|�j�dddtd�d��|�j�d d dtd�d��|�j�dd dtd�d��|�j�ddddtd�dtd��|�j�ddtd�d��d�S�)Nz-oz--old� store_truezPrint the older packages)�action�helpz-Oz --oldonlyz6Print the older packages. Exclude the newest packages.z-nz--newzPrint the newest packagesz-sz--spacez#Space separated output, not newlinez-kz--keep�storeZKEEPz)Newest N packages to keep - defaults to 1����)rT����metavarrU����default�typer5���zPath to directory)�add_argumentr���r4���)�parserr���r���r���� set_argparser����s&���� � � � ���zRepoManageCommand.set_argparserc�����������������C���sX���g�}t��|��D�]D\}}}|D�]4}t�j�|�d����t|�kr|�t�j�||���qq|S�)zJReturn all files in path matching ext return list object rW���)�os�walkr5����splitext�lower�strr8���r?���)r5����extZfilelist�root�dirs�files�fr���r���r���r9�������s����z RepoManageCommand._get_file_listc�����������������C���s*���t�|�jj�r tj�|�jj|j�S�|jS�d�S�r���)r:���r ���r$���r^���r5���r?���r����location)r���rL���r���r���r���r,�������s����z"RepoManageCommand._package_to_pathc�����������������C���s���|�j�|�j|�j|�j|�jfS�r���)r���Zepoch�version�releaserD���)rL���r���r���r���rE������s����z#RepoManageCommand._package_to_nevraN)r���r���r����aliasesr���Zsummaryr ���r"���rR����staticmethodr]���r9���r,���rE���r���r���r���r���r���+���s����$ r���)Z __future__r���r���Zdnfpluginscorer���r���r0���Zdnf.clir���r^���rA���ZPluginr���r���ZCommandr���r���r���r���r����<module>���s���