
    co                         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              yy)	    Nc                     	 t        j                  t        j                  |       j	                  d            S # t        j
                  $ r t        dj                  |             t        $ r Y y w xY w)Nzpbr.jsonzPackage {0} not installed)jsonloadspkg_resourcesget_distributionget_metadataDistributionNotFound	Exceptionformat)package_names    ./usr/lib/python3/dist-packages/pbr/cmd/main.py_get_metadatar      sm    zz***l:68 	8 -- J3::<HII s   69 5A10A1c                 P    t        | j                        d   }|rt        |       y y )Nsha)	_get_infonameprint)argsr   s     r   get_shar   $   s$    
DII
u
%C
c
     c           	          | j                   r/t         dj                  di t        | j                               y t         dj                  di t        | j                               y )Nz	{version}z!{name}	{version}	{released}	{sha} )shortr   r   r   r   )r   s    r   get_infor   *   sU    zz k  89TYY#789;4;; $		"$ 	%r   c                 4   t        |       }t        j                  |       j                  }|r|d   rd}nd}|d   }nN|j	                  d      }|d   j                  d      r|d   dd  }d}nd	}d}|D ]  }|j                         rd} t        | |||
      S )N
is_releasereleasedzpre-releasegit_version.g    )r   versionr   r   )r   r   r   r$   split
startswithisdigitdict)r   metadatar$   r   r   version_partsparts          r   r   r   2   s    T"H,,T2::GL!!H$H}%c*'',#AB'C$HC!H% -||~,H- T7hGGr   c                     t        t        j                  d       }|D ]N  }t        |j                        } dj
                  di |}|d   r| dj
                  di |z  }t        |       P y )Nc                 6    | j                   j                         S )N)project_namelower)dists    r   <lambda>zfreeze.<locals>.<lambda>K   s    4+<+<+B+B+D r   )keyz{name}=={version}r   z  # git sha {sha}r   )sortedr   working_setr   r.   r   r   )r   sorted_distsr0   infooutputs        r   freezer8   I   sw    -33DFL **++$++3d3;0)008488Ffr   c            
         t        j                  d      } | j                  dddt        t        j
                  j                  d                   | j                  dd	d
d      }d|_        |j                  dd      }|j                  t               |j                  dd       |j                  dd      }|j                  t               |j                  dd       |j                  dddd       |j                  dd      }|j                  t               | j                         }	 |j                  |       y # t         $ r}t#        |       Y d }~y d }~ww xY w)Nz pbr: Python Build Reasonableness)descriptionz-vz	--versionr$   pbr)actionr$   commandszvalid commandszadditional helpcmd)titler:   helpdestTr   zprint sha of package)r@   )funcr   zpackage to print sha ofr6   zprint version info for packagezpackage to print info ofz-sz--short
store_truezonly display package version)r<   r@   r8   z-print version info for all installed packages)argparseArgumentParseradd_argumentstrr;   r$   VersionInfoadd_subparsersrequired
add_parserset_defaultsr   r   r8   
parse_argsrB   r
   r   )parser
subparserscmd_shacmd_info
cmd_freezer   es          r   mainrT   T   sp   $$68F
k)CKK++E23  5 &&&6=N ' J J##E0F#GGg&&?@$$5 % 7Hx(&'AB$	,=  ? &&F ' HJ(D		$ as   5E 	E%E  E%__main__)rD   r   sysr   pbr.versionr;   r   r   r   r   r8   rT   __name__exitr   r   r   <module>rZ      sU       
  %H.D zCHHTV r   