<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</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 |rtjtd x|D ]}tjtd| qW 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   
