관리-도구
편집 파일: debuginfo-install.cpython-39.pyc
a �&cL+ � @ sN d dl mZmZ d dlZd dlmZ G dd� dej�ZG dd� dejj �Z dS )� )�_�loggerN)�Packagec s, e Zd ZdZdZ� fdd�Zdd� Z� ZS )�DebuginfoInstallz5DNF plugin supplying the 'debuginfo-install' command.�debuginfo-installc s4 t t| ��||� || _|| _|dur0|�t� dS )zInitialize the plugin instance.N)�superr �__init__�base�cliZregister_command�DebuginfoInstallCommand)�selfr r �� __class__� �A/usr/lib/python3.9/site-packages/dnf-plugins/debuginfo-install.pyr s zDebuginfoInstall.__init__c C sf | � | jj�}|�d�o.|�dd�o.|�dd�}|rbtj�| j�� � j dd�}t|�rb| jj� � d S )N�main� autoupdatez*-debuginfo)Z name__glob)Zread_configr �confZhas_sectionZ has_optionZ getboolean�dnf�sackZ_rpmdb_sack�query�filterm�len�repos�enable_debug_repos)r Zcpr Zdbginfor r r �config( s � �zDebuginfoInstall.config)�__name__� __module__�__qualname__�__doc__�namer r � __classcell__r r r r r s r c sh e Zd ZdZdZed�Z� fdd�Zedd� �Z dd � Z d d� Zdd � Zdd� Z dd� Zdd� Z� ZS )r z! DebuginfoInstall plugin for DNF )r zinstall debuginfo packagesc s4 t t| ��|� t� | _t� | _t� | _t� | _d S )N)r r r �set�available_debuginfo_missing�available_debugsource_missing�installed_debuginfo_missing�installed_debugsource_missing)r r r r r r : s z DebuginfoInstallCommand.__init__c C s | j ddd� d S )N�package�+)�nargs)�add_argument)�parserr r r � set_argparserB s z%DebuginfoInstallCommand.set_argparserc C s0 | j j}d|_d|_d|_d|_| jj�� d S )NT) r �demandsZ resolvingZ root_userZsack_activationZavailable_reposr r r )r r- r r r � configureF s z!DebuginfoInstallCommand.configurec C sh g }t tj�}t tj�}| jjD �]�}tj�|�j | j jdd�}|d }|stt� td�| j jj�|�� |�|� q |�� �� }|�|�� �� � t|�� �D ]T}|�tj�r�|d | � |v r�|�|� |�tj�r�|d | � |v r�|�|� q�|�� D �]�} | d } | j�r�i }| D ]}|�|jg ��|� �q|�� D ]^} | d }| �|j |��sz| �|j!|��sz| j"�#t$|�� | �|j%|��s>| j&�#t$|�� �q>q�| j'�tj��s�| j'�tj��r�| �(| � q�|d d u�rF| �)| j |d ��s| �)| j!|d ��s| j*�#d�+| j'| j,�� | �)| j%|d �s�| j-�#d�+| j'| j,�� q�| �.| j | ��s~| �.| j!| ��s~| j*�#d�+| j'| j,�� | �.| j%| �s�| j-�#d�+| j'| j,�� q�q | j*�r�t� td�d �/t0| j*��� | j-�r�t� td �d �/t0| j-��� | j"�rt� td�d �/t0| j"��� | j&�r8t� td�d �/t0| j&��� |�rd| j j1j2�rdtj3j4td �d�/|�d��d S )NF)Zwith_srcr zNo match for argument: %sr Znevraz{}-{}zICould not find debuginfo package for the following available packages: %sz, zKCould not find debugsource package for the following available packages: %szICould not find debuginfo package for the following installed packages: %szKCould not find debugsource package for the following installed packages: %szUnable to find a match� )Zpkg_spec)5r r ZDEBUGINFO_SUFFIXZDEBUGSOURCE_SUFFIXZoptsr'