Current File : //lib/python3.9/site-packages/dnf-plugins/__pycache__/repomanage.cpython-39.pyc
a

�&cJ)�@szddlmZddlmZddlmZmZddlZddlZddlZddl	Z	ddl
Z
Gdd�dej�ZGdd�dej
j�ZdS)	�)�absolute_import)�unicode_literals)�_�loggerNcs eZdZdZ�fdd�Z�ZS)�
RepoManage�
repomanagecs,tt|��||�|durdS|�t�dS�N)�superr�__init__Zregister_command�RepoManageCommand)�self�base�cli��	__class__��:/usr/lib/python3.9/site-packages/dnf-plugins/repomanage.pyr
$szRepoManage.__init__)�__name__�
__module__�__qualname__�namer
�
__classcell__rrrrr src@s\eZdZdZed�Zdd�Zdd�Zdd�Ze	d	d
��Z
e	dd��Zd
d�Ze	dd��Z
dS)r)rz"Manage a directory of rpm packagescCs(|jjs$|jjs$|jjtjtjd�dS)N)�stdout�stderr)�opts�verbose�quietrZredirect_logger�loggingZWARNING�INFO�rrrr�
pre_configure/szRepoManageCommand.pre_configurecCs,|jjs|jjs|j��|jj}d|_dS)NT)rrrrZredirect_repo_progress�demandsZsack_activation)rr!rrr�	configure3s
zRepoManageCommand.configurec"
s��jjr �jjr tj�td����jjr@�jjr@tj�td����jjr`�jjr`tj�td����jjsx�jjsxd�j_i}i}i}t�}t	�jj
�}z�d}�jjj
|�jj�jjgd�}|j���j�|�tjj�r6�j���jj��}|D]@}	|	��|kr�|�|	���|�|	��i��|	��g��|	�q�Wn�tjj�y�g}
���jjd�}
t |
�dk�r~tj�td	����jj!ddd
��jj"ddd�z�jj#|
�jj$j%d
�Wn.t&�y�t'�(td��)d�*|
���Yn0Yn0�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�}�jj�r||�6�D]T\}}|||f}||d�}|D]*}��4|�}||D]}|�|��q
�q�q�|�7�D]N}t8|�6��}||d�}|D](}||D]}|�t|�����qZ�qN�q,�jj�r<|�6�D]T\}}|||f}|d|�}|D]*}��4|�}||D]}|�|��qʐq��q�|�7�D]N}t8|�6��}|d|�}|D](}||D]}|�t|�����q�q�q�jj�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��jj:�r�t;d�*|��n|D]}
t;|
��q�dS)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.rpmrzNo files to process)�sack�reposF)Zload_system_repoZload_available_repos)�progresszCould not open {}z, )�flagscSsg|]}|�qSrr��.0�xrrr�
<listcomp>o�z)RepoManageCommand.run.<locals>.<listcomp>)Znevra_strict)Zpkg__neqcsg|]}��|��qSr)�_package_to_pathr'rrrr*�r+)Zpkg__eq� )<r�new�old�dnf�
exceptions�ErrorrZoldonly�set�intZkeepr
r$Zadd_new_repoZconf�pathZ_repoZexpireZ_add_repo_to_sackZWITH_MODULESZ_setup_modular_excludesZ_moduleContainerZgetModulePackagesZ	getRepoID�updateZgetArtifacts�
setdefaultZ
getNameStreamZ
getVersionNum�appendZ	RepoError�_get_file_list�len�resetZ	fill_sackZadd_remote_rpms�outputr%�IOErrorrZwarning�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_packagesrrr�run9s�


��
&"










&
zRepoManageCommand.runc	Cs�|jdddtd�d�|jdddtd�d�|jd	d
dtd�d�|jdd
dtd�d�|jddddtd�dtd�|jddtd�d�dS)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�typer5zPath to directory)�add_argumentrr4)�parserrrr�
set_argparser�s&
�
�
�
���zRepoManageCommand.set_argparsercCsXg}t�|�D]D\}}}|D]4}tj�|�d��t|�kr|�tj�||��qq|S)zJReturn all files in path matching ext

        return list object
        rW)�os�walkr5�splitext�lower�strr8r?)r5�extZfilelist�root�dirs�files�frrrr9�sz RepoManageCommand._get_file_listcCs*t|jj�r tj�|jj|j�S|jSdSr)r:r
r$r^r5r?r�location)rrLrrrr,�sz"RepoManageCommand._package_to_pathcCs|j|j|j|j|jfSr)rZepoch�version�releaserD)rLrrrrEsz#RepoManageCommand._package_to_nevraN)rrr�aliasesrZsummaryr r"rR�staticmethodr]r9r,rErrrrr+s$


r)Z
__future__rrZdnfpluginscorerrr0Zdnf.clirr^rAZPluginrrZCommandrrrrr�<module>s