U
    [eo                     @   sp   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rlee  dS )    Nc                 C   sV   zt t| dW S  tjk
r<   td| Y n tk
rP   Y d S X d S )Nzpbr.jsonzPackage {0} not installed)jsonloadspkg_resourcesget_distributionget_metadataDistributionNotFound	Exceptionformat)package_name r   N/var/www/html/services/stratfitenv/lib/python3.8/site-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   s8   | j rtdjf t| j ntdjf t| j d S )Nz	{version}z!{name}	{version}	{released}	{sha})shortr   r	   r   r   )r   r   r   r   get_info*   s
    r   c                 C   s   t | }t| j}|r4|d r&d}nd}|d }nL|d}|d drb|d dd  }d}nd	}d}|D ]}| snd}qnt| |||d
S )NZ
is_releasereleasedzpre-releaseZgit_version.g    )r   versionr   r   )r   r   r   r   split
startswithisdigitdict)r   metadatar   r   r   version_partspartr   r   r   r   2   s"    

r   c                 C   sV   t tjdd d}|D ]:}t|j}djf |}|d rH|djf |7 }t| qd S )Nc                 S   s
   | j  S )N)project_namelower)distr   r   r   <lambda>K       zfreeze.<locals>.<lambda>)keyz{name}=={version}r   z  # git sha {sha})sortedr   working_setr   r$   r	   r   )r   Zsorted_distsr&   infooutputr   r   r   freezeI   s    
r.   c               
   C   s  t jdd} | jdddttjdd | jdd	d
dd}d|_|j	ddd}|j
td |jddd |j	ddd}|j
td |jddd |jddddd |j	ddd}|j
td |  }z|| W n* tk
r } zt| W 5 d }~X Y nX d S )Nz pbr: Python Build Reasonableness)descriptionz-vz	--versionr   pbr)actionr   commandszvalid commandszadditional helpcmd)titler/   helpdestTr   zprint sha of package)r5   )funcr   zpackage to print sha ofr,   zprint version info for packagezpackage to print info ofz-sz--short
store_truezonly display package version)r1   r5   r.   z-print version info for all installed packages)argparseArgumentParseradd_argumentstrr0   r   VersionInfoadd_subparsersrequired
add_parserset_defaultsr   r   r.   
parse_argsr7   r   r   )parserZ
subparsersZcmd_shaZcmd_infoZ
cmd_freezer   er   r   r   mainT   sL         
 rE   __main__)r9   r   sysr   Zpbr.versionr0   r   r   r   r   r.   rE   __name__exitr   r   r   r   <module>   s   "