3 fJ)@szddlmZddlmZddlmZmZddlZddlZddlZddl Z ddl Z Gdddej Z Gdddej jZdS) )absolute_import)unicode_literals)_loggerNcs eZdZdZfddZZS) RepoManage repomanagecs,tt|j|||dkrdS|jtdS)N)superr__init__Zregister_commandRepoManageCommand)selfbasecli) __class__ /usr/lib/python3.6/repomanage.pyr $szRepoManage.__init__)__name__ __module__ __qualname__namer __classcell__rr)rrr src@s\eZdZdZedZddZddZddZe d d Z e d d Z d dZ e ddZ dS)r rz"Manage a directory of rpm packagescCs,|jj r(|jj r(|jjtjtjddS)N)stdoutstderr)optsverbosequietr Zredirect_loggerloggingZWARNINGINFO)r rrr pre_configure/szRepoManageCommand.pre_configurecCs0|jj r|jj r|jj|jj}d|_dS)NT)rrrr Zredirect_repo_progressdemandsZsack_activation)r rrrr configure3s zRepoManageCommand.configurec"s@jjr jjr tjjtdjjr@jjr@tjjtdjjr`jjr`tjjtdjj r|jj r|dj_i}i}i}t}t jj }yd}j j j |j jjjgd}|jjj j|tj jr>j jj jj}xH|D]@} | j|kr|j| j|j| jij| jgj| qWWntjjk rg} jjjd} t | dkrtjjtd j j!ddd j j"d d d yj j#| j j$j%d Wn0t&k rt'j(tdj)dj*| YnXYnXj j+j,t-j.dj/} dd| j0| j0|ddj/D} | j1x| D]~} | j2| j3f}||krx| ||kr||j| n | g||<j4| }||kr||jj5| nj5| g||<q@Wg}t}jjrxh|j6D]\\}}|||f}|| d}x6|D].}j4|}x||D]}|j|q WqWqWxb|j7D]V}t8|j6}|| d}x4|D],}x$||D]}|jt|jq|WqnWqJWjjr|xh|j6D]\\}}|||f}|d| }x6|D].}j4|}x||D]}|j|qWqWqWxb|j7D]V}t8|j6}|d| }x4|D],}x$||D]}|jt|jqTWqFWq"Wjjrxh|j6D]\\}}|||f}|d| }x6|D].}j4|}x||D]}|j|qWqWqWt}xb|j7D]V}t8|j6}|| d}x4|D],}x$||D]}|jt|jq2Wq$WqWxx|j7D]l}t8|j6}|d| }xJ|D]B}x:||D].}x&|jD]} | |kr|j9| qWqWqWqdWfdd| j0| j0|ddj/D}!||!}|j1jj:r$t;dj*|nx|D]} t;| q*WdS)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)sackreposF)Zload_system_repoZload_available_repos)progresszCould not open {}z, )flagscSsg|]}|qSrr).0xrrr osz)RepoManageCommand.run..)Z nevra_strict)Zpkg__neqcsg|]}j|qSr)_package_to_path)r$r%)r rrr&s)Zpkg__eq )s