
|_z	                 @   sn   d  d l  m Z d  d l m Z d  d l m Z m Z m Z d d   Z Gd d   d e  Z	 d d	   Z
 d
 S)    )DistutilsOptionError)map)edit_configoption_baseconfig_filec             C   sJ   x$ d D] } | |  k r t  |   Sq W|  j   |  g k rF t  |   S|  S)z4Quote an argument for later parsing by shlex.split()"'\#)r   r   r	   r
   )reprsplit)argc r   >/tmp/pip-build-3_sjtvrs/setuptools/setuptools/command/alias.pyshquote   s    
r   c               @   sf   e  Z d  Z d Z d Z d Z d g e j Z e j d g Z d d   Z	 d	 d
   Z
 d d   Z d S)aliasz3Define a shortcut that invokes one or more commandsz0define a shortcut to invoke one or more commandsTremoverremove (unset) the aliasc             C   s#   t  j |   d  |  _ d  |  _ d  S)N)r   initialize_optionsargsr   )selfr   r   r   r      s    	zalias.initialize_optionsc             C   s;   t  j |   |  j r7 t |  j  d k r7 t d   d  S)N   zFMust specify exactly one argument (the alias name) when using --remove)r   finalize_optionsr   lenr   r   )r   r   r   r   r   #   s    zalias.finalize_optionsc             C   s   |  j  j d  } |  j sZ t d  t d  x$ | D] } t d t | |   q6 Wd  St |  j  d k r |  j \ } |  j r d  } q | | k r t d t | |   d  St d |  d  Sn2 |  j d } d j t t	 |  j d d     } t
 |  j d | | i i |  j  d  S)	NaliaseszCommand Aliasesz---------------zsetup.py aliasr   z No alias definition found for %rr    )distributionget_option_dictr   printformat_aliasr   r   joinr   r   r   filenamedry_run)r   r   r   commandr   r   r   run+   s&    	

		%z	alias.runN)r   r   r   )__name__
__module____qualname____doc__descriptionZcommand_consumes_argumentsr   user_optionsboolean_optionsr   r   r&   r   r   r   r   r      s   
r   c             C   s{   | |  \ } } | t  d  k r+ d } n@ | t  d  k rF d } n% | t  d  k ra d } n
 d | } | |  d | S)	Nglobalz--global-config userz--user-config local z--filename=%rr   )r   )namer   sourcer%   r   r   r   r!   F   s    			
r!   N)Zdistutils.errorsr   Zsetuptools.extern.six.movesr   Zsetuptools.command.setoptr   r   r   r   r   r!   r   r   r   r   <module>   s
   
4