3 šgt`L+ ã @ 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.zdebuginfo-installc s4 t t| ƒj||ƒ || _|| _|dk r0|jtƒ dS )zInitialize the plugin instance.N)Úsuperr Ú__init__ÚbaseÚcliZregister_commandÚDebuginfoInstallCommand)Úselfr r )Ú __class__© ú'/usr/lib/python3.6/debuginfo-install.pyr s zDebuginfoInstall.__init__c C sf | j | jjƒ}|jdƒo.|jddƒo.|jddƒ}|rbtjj| jƒj ƒ j dd�}t|ƒrb| jjj ƒ 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 údebuginfo-installzinstall debuginfo packagesc s4 t t| ƒj|ƒ 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|_| jjjƒ d S )NT) r ÚdemandsZ resolvingZ root_userZsack_activationZavailable_reposr r r )r r, r r r Ú configureF s z!DebuginfoInstallCommand.configurec C sŒ g }t tjƒ}t tjƒ}�x°| jjD �]¢}tjj|ƒj | j jdd�}|d }|sxtj tdƒ| j jjj|ƒƒ |j|ƒ q$|jƒ jƒ }|j|jƒ jƒ ƒ xdt|jƒ ƒD ]T}|jtjƒrÐ|d | … |krÐ|j|ƒ |jtjƒr¤|d | … |kr¤|j|ƒ q¤W �xÈ|jƒ D �]º} | d } | j�r¶i }x"| D ]}|j|jg ƒj|ƒ �q(W xj|jƒ D ]^} | d }| j|j |ƒ�sŒ| j|j!|ƒ�sŒ| j"j#t$|ƒƒ | j|j%|ƒ�sP| j&j#t$|ƒƒ �qPW �q| j'jtjƒ�sÖ| j'jtjƒ�rä| j(| ƒ �q|d d k �rb| j)| j |d ƒ�s2| j)| j!|d ƒ�s2| j*j#dj+| j'| j,ƒƒ | j)| j%|d ƒ�s| j-j#dj+| j'| j,ƒƒ �q| j.| j | ƒ�sš| j.| j!| ƒ�sš| j*j#dj+| j'| j,ƒƒ | j.| j%| ƒ�s| j-j#dj+| j'| j,ƒƒ �qW q$W | j*�rðtj tdƒd j/t0| j*ƒƒƒ | j-�rtj td ƒd j/t0| j-ƒƒƒ | j"�r8tj tdƒd j/t0| j"ƒƒƒ | j&�r\tj tdƒd j/t0| j&ƒƒƒ |�rˆ| j j1j2�rˆtj3j4td ƒdj/|ƒ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&