î
]á[\p  ã               @   sb   d  Z  d d l Z d d l m Z d d l Td d l m Z d d „  Z Gd d	 „  d	 e ƒ Z d S)
zidistutils.command.bdist

Implements the Distutils 'bdist' command (create a built [binary]
distribution).é    N)ÚCommand)Ú*)Úget_platformc              C   sl   d d l  m }  g  } x6 t j D]+ } | j d | d t j | d f ƒ q  W|  | ƒ } | j d ƒ d S)zFPrint list of available formats (arguments to "--format" option).
    r   )ÚFancyGetoptzformats=Né   z'List of available distribution formats:)Zdistutils.fancy_getoptr   ÚbdistÚformat_commandsÚappendÚformat_commandZ
print_help)r   ÚformatsÚformatZpretty_printer© r   ú-/usr/lib/python3.4/distutils/command/bdist.pyÚshow_formats   s    r   c            	   @   sù   e  Z d  Z d Z d4 d d d e ƒ  f d5 d6 d7 d8 d9 g Z d g Z d d	 d e f g Z d: Z	 i d d 6d d 6Z
 d d d d d  d! d d" g Z i d; d 6d< d 6d= d 6d> d 6d? d  6d@ d! 6dA d 6dB d" 6Z d. d/ „  Z d0 d1 „  Z d2 d3 „  Z d	 S)Cr   z$create a built (binary) distributionúbdist-base=Úbú4temporary directory for creating built distributionsz
plat-name=Úpz;platform name to embed in generated filenames (default: %s)úformats=Nú/formats for distribution (comma-separated list)ú	dist-dir=Údú=directory to put final built distributions in [default: dist]ú
skip-buildú2skip rebuilding everything (for testing/debugging)úowner=Úuú@Owner name used when creating a tar file [default: current user]úgroup=ÚgúAGroup name used when creating a tar file [default: current group]zhelp-formatsz$lists available distribution formatsÚ	bdist_rpmZgztarÚposixÚzipÚntZrpmZbztarZztarZtarZwininstZmsiúRPM distributionÚ
bdist_dumbúgzip'ed tar fileúbzip2'ed tar fileúcompressed tar fileútar fileÚbdist_wininstúWindows executable installerúZIP fileÚ	bdist_msiúMicrosoft Installerc             C   sC   d  |  _  d  |  _ d  |  _ d  |  _ d |  _ d  |  _ d  |  _ d  S)Nr   )Ú
bdist_baseÚ	plat_namer   Údist_dirÚ
skip_buildÚgroupÚowner)Úselfr   r   r   Úinitialize_optionsP   s    						zbdist.initialize_optionsc             C   s  |  j  d  k r? |  j r' t ƒ  |  _  q? |  j d ƒ j  |  _  n  |  j d  k r‚ |  j d ƒ j } t j j | d |  j  ƒ |  _ n  |  j	 d ƒ |  j
 d  k rã y |  j t j g |  _
 Wqã t k
 rß t d t j ƒ ‚ Yqã Xn  |  j d  k rþ d |  _ n  d  S)NZbuildzbdist.r   z;don't know how to create built distributions on platform %sZdist)r1   r3   r   Zget_finalized_commandr0   Ú
build_baseÚosÚpathÚjoinZensure_string_listr   Údefault_formatÚnameÚKeyErrorZDistutilsPlatformErrorr2   )r6   r8   r   r   r   Úfinalize_optionsY   s$    	zbdist.finalize_optionsc             C   s  g  } xR |  j  D]G } y | j |  j | d ƒ Wq t k
 rV t d | ƒ ‚ Yq Xq Wx² t t |  j  ƒ ƒ D]› } | | } |  j | ƒ } | |  j k r² |  j  | | _	 n  | d k rÙ |  j
 | _
 |  j | _ n  | | | d d  … k rÿ d | _ n  |  j | ƒ qq Wd  S)Nr   zinvalid format '%s'r&   r   )r   r	   r
   r>   ZDistutilsOptionErrorÚrangeÚlenZreinitialize_commandÚno_format_optionr   r5   r4   Z	keep_tempZrun_command)r6   Zcommandsr   ÚiZcmd_nameZsub_cmdr   r   r   Úrunu   s"    
z	bdist.run)r   r   r   )r   Nr   )r   r   r   )r   Nr   )r   r   r   )r   r   r    )r!   )r!   r%   )ú
bdist_dumbr'   )rE   r(   )rE   r)   )rE   r*   )r+   r,   )rE   r-   )r.   r/   )Ú__name__Ú
__module__Ú__qualname__Zdescriptionr   Zuser_optionsZboolean_optionsr   Zhelp_optionsrB   r<   r   r
   r7   r?   rD   r   r   r   r   r      sH    
     		


 
	r   )	Ú__doc__r9   Zdistutils.corer   Zdistutils.errorsZdistutils.utilr   r   r   r   r   r   r   Ú<module>   s   
