
U                 @   s   d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l Z d d   Z d d   Z d d   Z d d	   Z	 d
 d   Z
 d d   Z e d k r e j e    d S)    Nc             C   si   y# t  j t j |   j d   SWn? t j k
 rO t d j |     Yn t k
 rd d  SYn Xd  S)Nzpbr.jsonzPackage {0} not installed)jsonloadspkg_resourcesget_distributionZget_metadataZDistributionNotFound	Exceptionformat)Zpackage_name r   ./usr/lib/python3/dist-packages/pbr/cmd/main.py_get_metadata   s    r
   c             C   s'   t  |  j  d } | r# t |  d  S)Nsha)	_get_infonameprint)argsr   r   r   r	   get_sha$   s    r   c             C   s    t  d j t |  j     d  S)Nz!{name}	{version}	{released}	{sha})r   r   r   r   )r   r   r   r	   get_info*   s    	r   c          	   C   s   t  |   } t j |   j } | rJ | d r7 d } n d } | d } nn | j d  } | d j d  r | d d d   } d } n/ d } d } x  | D] } | j   s d } q Wt d	 |  d
 | d | d |  S)NZ
is_releasereleasedzpre-releaseZgit_version.   g r   versionr   r   )r
   r   r   r   split
startswithisdigitdict)r   Zmetadatar   r   r   Zversion_partspartr   r   r	   r   /   s"    
		
r   c             C   s]   xV t  j D]K } t | j  } d j |   } | d rK | d j |   7} t |  q
 Wd  S)Nz{name}=={version}r   z  # git sha {sha})r   Zworking_setr   Zproject_namer   r   )r   Zdistinfooutputr   r   r	   freezeF   s    
r    c              C   sF  t  j d d  }  |  j d d d d d t t j j d   |  j d d	 d d
 d d  } | j d d d } | j	 d t
  | j d d d | j d d d } | j	 d t  | j d d d | j d d d } | j	 d t  |  j   } y | j |  Wn/ t k
 rA} z t |  WYd  d  } ~ Xn Xd  S)NZdescriptionz pbr: Python Build Reasonablenessz-vz	--versionactionr   pbrtitleZcommandszvalid commandshelpzadditional helpr   zprint sha of packagefuncr   zpackage to print sha ofr   zprint version info for packagezpackage to print info ofr    z-print version info for all installed packages)argparseArgumentParseradd_argumentstrr"   r   ZVersionInfoZadd_subparsersZ
add_parserZset_defaultsr   r   r    
parse_argsr%   r   r   )parserZ
subparsersZcmd_shar   er   r   r	   mainO   s,    			r-   __main__)r&   r   sysr   Zpbr.versionr"   r
   r   r   r   r    r-   __name__exitr   r   r   r	   <module>   s   	