3 ©ft`Ð ã @ sp d dl mZ d dl mZ d dlZd dlmZ d dlmZ d dl Z d dl Z d dlZejdƒZ G dd„ dejƒZdS ) é )Úprint_function)Úunicode_literalsN)Ú_)ÚcommandsÚdnfc @ sL e Zd ZdZedƒZedd„ ƒZdd„ Zdd„ Z d d „ Z dd„ Zd d„ ZdS )ÚMarkCommandÚmarkz7mark or unmark installed packages as installed by user.c C s6 | j dddddgtdƒd� | j dd d tdƒd� d S ) Nr é ZinstallÚremoveÚgroupzhinstall: mark as installed by user remove: unmark as installed by user group: mark as installed by group)ÚnargsÚchoicesÚhelpÚpackageú+ZPACKAGEzPackage specification)r Úmetavarr )Úadd_argumentr )Úparser© r ú/usr/lib/python3.6/mark.pyÚ set_argparser) s zMarkCommand.set_argparserc C s, | j jj|tjjƒ tjtdƒt |ƒƒ d S )Nz%s marked as user installed.) ÚbaseÚhistoryÚ set_reasonÚlibdnfÚtransactionZTransactionItemReason_USERÚloggerÚinfor Ústr)ÚselfÚpkgr r r Ú _mark_install2 s zMarkCommand._mark_installc C s, | j jj|tjjƒ tjtdƒ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 zMarkCommand._mark_removec C s, | j jj|tjjƒ tjtdƒt |ƒƒ d S )Nz%s marked as group installed.) r r r r r ZTransactionItemReason_GROUPr r r r )r r r r r Ú_mark_group: s zMarkCommand._mark_groupc C s$ | j j}d|_d|_d|_d|_d S )NTF)ÚcliÚdemandsZsack_activationZ root_userZavailable_reposZ resolving)r r% r r r Ú configure> s zMarkCommand.configurec C s | j jd }| j j}tjt| d| ƒƒ}g }xR|D ]J}tjj|ƒ}|j | j jƒ}x|D ]}||ƒ qVW t|ƒdkr2|j |ƒ q2W |r¸tjtdƒƒ x|D ]}tjtdƒ|ƒ q˜W tjj‚| j jjƒ }|d krØ| jjƒ } n|j} | j jj| g g ƒ | j jj| ƒ d S )Nr Z_mark_zError:zPackage %s is not installed.)Zoptsr r Ú functoolsÚpartialÚgetattrr ZsubjectZSubjectZget_best_queryr ZsackÚlenÚappendr Úerrorr r$ ZCliErrorr ZlastZ_rpmdb_versionZend_rpmdb_versionZbegÚend) r ÚcmdZpkgsZ mark_funcZnotfoundr ZsubjÚqÚoldZ rpmdb_versionr r r ÚrunE s, zMarkCommand.runN)r ) Ú__name__Ú __module__Ú__qualname__Úaliasesr ZsummaryÚstaticmethodr r! r" r# r&