a
    !c                     @   sp   d dl mZ d dl mZ d dlZd dlmZ d dlmZ d dl	Z	d dl
Z
d dlZedZG dd dejZdS )	    )print_function)unicode_literalsN)_)commandsdnfc                   @   sL   e Zd ZdZedZedd Zdd Zdd Z	d	d
 Z
dd Zdd ZdS )MarkCommand)markz7mark or unmark installed packages as installed by user.c                 C   s4   | j ddg dtdd | j dddtd	d
 d S )Nr      )Zinstallremovegroupzhinstall: mark as installed by user
remove: unmark as installed by user
group: mark as installed by group)nargschoiceshelppackage+ZPACKAGEzPackage specification)r   metavarr   )add_argumentr   )parser r   9/usr/lib/python3.9/site-packages/dnf/cli/commands/mark.pyset_argparser)   s    
zMarkCommand.set_argparserc                 C   s,   | j j|tjj ttdt	| d S )Nz%s marked as user installed.)
basehistory
set_reasonlibdnftransactionZTransactionItemReason_USERloggerinfor   strselfpkgr   r   r   _mark_install2   s    zMarkCommand._mark_installc                 C   s,   | j j|tjj ttdt	| d S )Nz%s unmarked as user installed.)
r   r   r   r   r   Z TransactionItemReason_DEPENDENCYr   r   r   r   r   r   r   r   _mark_remove6   s    zMarkCommand._mark_removec                 C   s,   | j j|tjj ttdt	| d S )Nz%s marked as group installed.)
r   r   r   r   r   ZTransactionItemReason_GROUPr   r   r   r   r   r   r   r   _mark_group:   s    zMarkCommand._mark_groupc                 C   s$   | j j}d|_d|_d|_d|_d S )NTF)clidemandsZsack_activationZ	root_userZavailable_reposZ	resolving)r    r&   r   r   r   	configure>   s
    zMarkCommand.configurec           
      C   s   | j jd }| j j}tt| d| }g }|D ]F}tj|}|	| j
j}|D ]}|| qRt|dkr0|| q0|rttd |D ]}ttd| qtjj| j
j }|d u r| j
j }	n|j}	| j
j|	g g  | j
j|	 d S )Nr   Z_mark_zError:zPackage %s is not installed.)Zoptsr   r   	functoolspartialgetattrr   ZsubjectZSubjectZget_best_queryr   Zsacklenappendr   errorr   r%   ZCliErrorr   ZlastZ_tsZdbCookieZend_rpmdb_versionZbegend)
r    cmdZpkgsZ	mark_funcZnotfoundr!   ZsubjqoldZrpmdb_versionr   r   r   runE   s,    
zMarkCommand.runN)__name__
__module____qualname__aliasesr   Zsummarystaticmethodr   r"   r#   r$   r'   r2   r   r   r   r   r   $   s   
r   )Z
__future__r   r   Zlibdnf.transactionr   Zdnf.i18nr   Zdnf.clir   r   r(   ZloggingZ	getLoggerr   ZCommandr   r   r   r   r   <module>   s   
