3 gt`L+@sNddlmZmZddlZddlmZGdddejZGdddejj Z dS))_loggerN)Packagecs,eZdZdZdZfddZddZZS)DebuginfoInstallz5DNF plugin supplying the 'debuginfo-install' command.zdebuginfo-installcs4tt|j||||_||_|dk r0|jtdS)zInitialize the plugin instance.N)superr__init__basecliZregister_commandDebuginfoInstallCommand)selfrr ) __class__'/usr/lib/python3.6/debuginfo-install.pyr s zDebuginfoInstall.__init__cCsf|j|jj}|jdo.|jddo.|jdd}|rbtjj|jj j dd}t |rb|jj j dS)Nmain autoupdatez *-debuginfo)Z name__glob)Z read_configrconfZ has_sectionZ has_optionZ getbooleandnfsackZ _rpmdb_sackqueryfiltermlenreposenable_debug_repos)r ZcprZdbginfor r rconfig(s   zDebuginfoInstall.config)__name__ __module__ __qualname____doc__namerr __classcell__r r )r rrs rcsheZdZdZdZedZfddZeddZ dd Z d d Z d d Z ddZ ddZddZZS)r z! DebuginfoInstall plugin for DNF debuginfo-installzinstall debuginfo packagescs4tt|j|t|_t|_t|_t|_dS)N)rr rsetavailable_debuginfo_missingavailable_debugsource_missinginstalled_debuginfo_missinginstalled_debugsource_missing)r r )r r rr:s z DebuginfoInstallCommand.__init__cCs|jddddS)Npackage+)nargs) add_argument)parserr r r set_argparserBsz%DebuginfoInstallCommand.set_argparsercCs0|jj}d|_d|_d|_d|_|jjjdS)NT) r demandsZ resolvingZ root_userZsack_activationZavailable_reposrrr)r r,r r r configureFs z!DebuginfoInstallCommand.configurecCsg}ttj}ttj}x|jjD]}tjj|j |j j dd}|d}|sxt j td|j jjj||j|q$|jj}|j|jjxdt|jD]T}|jtjr|d| |kr|j||jtjr|d| |kr|j|qWx|jD]} | d} | jri} x"| D]} | j| jgj| q(Wxj| jD]^} | d} |j| j | s|j| j!| s|j"j#t$| |j| j%| sP|j&j#t$| qPWq| j'jtjs| j'jtjr|j(| q|ddk rb|j)| j |ds2|j)| j!|ds2|j*j#dj+| j'| j,|j)| j%|ds|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,qWq$W|j*rt j tdd j/t0|j*|j-rt j td d j/t0|j-|j"r8t j td d j/t0|j"|j&r\t j td d j/t0|j&|r|j j1j2rtj3j4td dj/|ddS)NF)Zwith_srcrzNo match for argument: %srZnevraz{}-{}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)5rrZDEBUGINFO_SUFFIXZDEBUGSOURCE_SUFFIXZoptsr&rZsubjectZSubjectZget_best_solutionrrrinforoutputZtermZboldappendZ availableZ _name_dictupdateZ installedlistkeysendswithpopvaluesZ _from_system setdefaultarch_install_debug_from_system debug_nameZsource_debug_namer$addstrZdebugsource_namer%r_install_install_debugr"formatevrr#_install_debug_no_nevrajoinsortedrstrict exceptionsZPackagesNotAvailableError)r Z errors_specZdebuginfo_suffix_lenZdebugsource_suffix_lenZpkgspecZsolutionrZ package_dictrpkgsZ first_pkgZ arch_dictpkgZpackage_arch_listr r rrunNs           zDebuginfoInstallCommand.runcCs:|jjjj||j|j|j|jd}|r6|j|dSdS)N)repochversionreleaser9TF) rrrfilterrJrKrLr9r>)r r;rHrr r rr:s  z2DebuginfoInstallCommand._install_debug_from_systemcCsi}|jdk r|j|d<|jdk r,|j|d<|jdk r@|j|d<|jdk rT|j|d<|jjjjfd|i|}|r|j|dSdS)NZ epoch__globZ version__globZ release__globZ arch__globrTF) rJrKrLr9rrrrMr>)r r;Z base_nevrakwargsrr r rr?s         z&DebuginfoInstallCommand._install_debugcs8|jjjjfdd|Dd}|r4|j|dSdS)Ncsg|]}dj|j|jqS)z{}-{}.{})r@rAr9).0p)r;r r szCDebuginfoInstallCommand._install_debug_no_nevra..)Z nevra_strictTF)rrrrr>)r r;rGrr )r;rrBs   z/DebuginfoInstallCommand._install_debug_no_nevracCs:tjj|jj}|j|d|jjj||jjj ddS)N)rH)ZselectZoptional) rselectorZSelectorrrr!ZgoalZinstallrrE)r rGrRr r rr>s z DebuginfoInstallCommand._install)r )rrrraliasesrZsummaryr staticmethodr+r-rIr:r?rBr>rr r )r rr 4s  |  r ) ZdnfpluginscorerrrZ dnf.packagerZPluginrr ZCommandr r r r rs