
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<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	r–t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r†t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s¨tjtdƒƒ d S xX| j jD ]}| j|ƒ q²W n<x:| jjD ].}|| j jkrôtjtdƒ| ƒ qÐ| j|ƒ qÐW 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   
