ó
X¾÷Xc           @   s•   d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z e d k r‘ e j e ƒ  ƒ n  d S(	   iÿÿÿÿNc         C   sd   y# t  j t j |  ƒ j d ƒ ƒ SWn: t j k
 rN t d j |  ƒ ƒ ‚ n t k
 r_ d  SXd  S(   Ns   pbr.jsons   Package {0} not installed(	   t   jsont   loadst   pkg_resourcest   get_distributiont   get_metadatat   DistributionNotFoundt	   Exceptiont   formatt   None(   t   package_name(    (    s)   /tmp/pip-build-h1VYrz/pbr/pbr/cmd/main.pyt   _get_metadata   s    c         C   s%   t  |  j ƒ d } | r! | GHn  d  S(   Nt   sha(   t	   _get_infot   name(   t   argsR   (    (    s)   /tmp/pip-build-h1VYrz/pbr/pbr/cmd/main.pyt   get_sha$   s    c         C   s   d j  t |  j ƒ   GHd  S(   Ns!   {name}	{version}	{released}	{sha}(   R   R   R   (   R   (    (    s)   /tmp/pip-build-h1VYrz/pbr/pbr/cmd/main.pyt   get_info*   s    c      	   C   sÔ   t  |  ƒ } t j |  ƒ j } | rJ | d r7 d } n d } | d } nk | j d ƒ } | d j d ƒ rƒ | d d } d } n2 d	 } d } x# | D] } | j ƒ  s– d } q– q– Wt d
 |  d | d | d | ƒ S(   Nt
   is_releaset   releaseds   pre-releaset   git_versiont   .iÿÿÿÿt   gi   t    R   t   versionR   (   R
   R   R   R   t   splitt
   startswitht   isdigitt   dict(   R   t   metadataR   R   R   t   version_partst   part(    (    s)   /tmp/pip-build-h1VYrz/pbr/pbr/cmd/main.pyR   /   s"    
		c         C   sp   t  t j d d „  ƒ} xQ | D]I } t | j ƒ } d j |   } | d rc | d j |   7} n  | GHq Wd  S(   Nt   keyc         S   s   |  j  j ƒ  S(   N(   t   project_namet   lower(   t   dist(    (    s)   /tmp/pip-build-h1VYrz/pbr/pbr/cmd/main.pyt   <lambda>H   s    s   {name}=={version}R   s     # git sha {sha}(   t   sortedR   t   working_setR   R    R   (   R   t   sorted_distsR"   t   infot   output(    (    s)   /tmp/pip-build-h1VYrz/pbr/pbr/cmd/main.pyt   freezeF   s    
c       	   C   s/  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
 r*} | GHn Xd  S(   Nt   descriptions    pbr: Python Build Reasonablenesss   -vs	   --versiont   actionR   t   pbrt   titlet   commandss   valid commandst   helps   additional helpR   s   print sha of packaget   funcR   s   package to print sha ofR'   s   print version info for packages   package to print info ofR)   s-   print version info for all installed packages(   t   argparset   ArgumentParsert   add_argumentt   strR,   R   t   VersionInfot   add_subparserst
   add_parsert   set_defaultsR   R   R)   t
   parse_argsR0   R   (   t   parsert
   subparserst   cmd_shat   cmd_infot
   cmd_freezeR   t   e(    (    s)   /tmp/pip-build-h1VYrz/pbr/pbr/cmd/main.pyt   mainQ   s,    			t   __main__(   R1   R    t   sysR   t   pbr.versionR,   R
   R   R   R   R)   R@   t   __name__t   exit(    (    (    s)   /tmp/pip-build-h1VYrz/pbr/pbr/cmd/main.pyt   <module>   s   						