
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3
©ft`Ð  ã               @   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j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   s6   | j dddddg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   ú/usr/lib/python3.6/mark.pyÚset_argparser)   s    
zMarkCommand.set_argparserc             C   s,   | j jj|tjjƒ tj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j|tjjƒ tj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   r   Ú_mark_remove6   s    zMarkCommand._mark_removec             C   s,   | j jj|tjjƒ tj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   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jt| d| ƒƒ}g }xR|D ]J}tjj|ƒ}|j	| j
jƒ}x|D ]}||ƒ qVW t|ƒdkr2|j|ƒ q2W |r¸tjtdƒƒ x|D ]}tjtdƒ|ƒ q˜W tjj‚| j
jjƒ }|d krØ| jjƒ }	n|j}	| j
jj|	g g ƒ | j
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_rpmdb_versionZend_rpmdb_versionZbegÚend)
r   ÚcmdZpkgsZ	mark_funcZnotfoundr    ZsubjÚqÚoldZrpmdb_versionr   r   r   ÚrunE   s,    


zMarkCommand.runN)r   )Ú__name__Ú
__module__Ú__qualname__Úaliasesr   ZsummaryÚstaticmethodr   r!   r"   r#   r&   r1   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   
