<!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`                 @   s   d dl mZ d dl mZ d dl mZ d dlZd dlZd dlZd dl	Zd dlm
Z
 d dlZd dlZd dlmZ ejdZG dd	 d	e
jZdS )
    )absolute_import)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d Zdd Zdd Zdd ZdS )AliasCommandaliaszList or create command aliasesc             C   sl   | j  }|jdddtdd |jdddtdd | jdd	d
dd
dgtdd | jdddtdd d S )Nz--enable-resolvingF
store_truezenable aliases resolving)defaultactionhelpz--disable-resolvingzdisable aliases resolving
subcommand?listadddeletezaction to do with aliases)nargsr   choicesr   r	   *zcommand[=result]zalias definition)r   metavarr   )Zadd_mutually_exclusive_groupadd_argumentr   )parserZenable_group r   /usr/lib/python3.6/alias.pyset_argparser*   s    

zAliasCommand.set_argparserc             C   sH   | j j}| jjdkrd|_tj jj | _| jj	  | jj
| _| j  d S )Nr   r   T)r   r   )clidemandsoptsr   Z	root_userr   aliasesZAliasesaliases_baseZ_load_aliasesenabledZresolving_enabled_update_config_from_options)selfr   r   r   r   	configure9   s    

zAliasCommand.configurec             C   s   d }| j jrd}tjtd | j jr8d}tjtd |d k	rtjjt	j
jjsftt	j
jjdj  t	jjjt	j
jjdd d|i | jj s|| j_d S )NTzAliases are now enabledFzAliases are now disabledwmainr!   )r   Zenable_resolvingloggerinfor   Zdisable_resolvingospathexistsr   r   r   ZALIASES_CONF_PATHopencloseconfZ
BaseConfigZwrite_raw_configfiler    Z_disabled_by_environr!   )r#   r!   r   r   r   r"   B   s    
z(AliasCommand._update_config_from_optionsc             C   s   i }x| j jD ]}|jdd}|d j }t|j dkrLtjtd| q|jdrhtjtd| qt|dkrtjtd| q|d j ||< qW |S )N=   r   zInvalid alias key: %s-zAlias argument has no value: %s)	r   r	   splitstriplenr'   warningr   
startswith)r#   Znew_aliasesr	   cmdr   r   r   _parse_option_aliasT   s    
z AliasCommand._parse_option_aliasc             C   sx   t jjtjjjs&ttjjjdj  ytjjj	tjjj}W n4 tj
jk
rr } ztjtd| d S d }~X nX |S )Nr%   zConfig error: %s)r)   r*   r+   r   r   r   ALIASES_USER_PATHr,   r-   ZAliasesConfig
exceptionsZConfigErrorr'   r5   r   )r#   r.   er   r   r   _load_user_aliasese   s    zAliasCommand._load_user_aliasesc             C   sd   t tjjjd}d}|dj|7 }|d7 }x*|j D ]\}}|dj|dj|7 }q4W |j| d S )Nr%   z[main]
zenabled = {}

z
[aliases]
z{} = {}
 )	r,   r   r   r   r9   formatitemsjoinwrite)r#   user_aliasesr!   Zfileobjoutputkeyvaluer   r   r   _store_user_aliasesp   s    z AliasCommand._store_user_aliasesc             C   sP   | j  }|j}|d krd S |j| | j||j tjtddj|j	  d S )NzAliases added: %sz, )
r<   r   updaterF   r!   r'   r(   r   r@   keys)r#   r   r.   rB   r   r   r   add_aliasesy   s    
zAliasCommand.add_aliasesc             C   s   | j  }|j}|d krd S g }xF|D ]>}y||= |j| W q$ tk
r`   tjtd| Y q$X q$W | j||j tjtddj	| d S )NzAlias not found: %szAliases deleted: %sz, )
r<   r   appendKeyErrorr'   r(   r   rF   r!   r@   )r#   cmdsr.   rB   Z
valid_cmdsr7   r   r   r   remove_aliases   s    
zAliasCommand.remove_aliasesc             C   s~   |g}y| j j|}W nH tjjk
r^ } z(tjtd||dj| j j	|  W Y d d }~X nX t
td|dj|f  d S )Nz%s, alias %s="%s"r=   zAlias %s='%s')r    Z_resolver   r:   Errorr'   errorr   r@   r   print)r#   r7   argsr;   r   r   r   
list_alias   s    0zAliasCommand.list_aliasc             C   s  | j jstjtd | jjdkrL| j }|s>tj	j
td| j| d S | jjdkr| jj}|g krxtj	j
td| j| d S | jjs| j jstjtd d S xX| j jD ]}| j| qW n<x:| jjD ].}|| j jkrtjtd|  q| j| qW d S )NzAliases resolving is disabled.r   zNo aliases specified.r   zNo alias specified.zNo aliases defined.zNo match for alias: %s)r    r!   r'   r5   r   r   r   r8   r   r:   rN   rI   r	   rM   r   r(   rR   )r#   r   rL   r7   r   r   r   run   s2    

zAliasCommand.runN)r	   )__name__
__module____qualname__r   r   Zsummarystaticmethodr   r$   r"   r8   r<   rF   rI   rM   rR   rS   r   r   r   r   r   &   s   		
r   )Z
__future__r   r   r   ZloggingZos.pathr)   Zdnf.clir   Zdnf.cli.aliasesr   Zdnf.confZdnf.exceptionsZdnf.i18nr   Z	getLoggerr'   ZCommandr   r   r   r   r   <module>   s   
