o
    Ni                     @   s|   d dl mZ d dl m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edkr<ee  dS dS )    )absolute_import)print_functionNc                 C   s"   t | jd }|rt| d S d S )Nsha)	_get_infonameprint)argsr    r	   @/home/ubuntu/.local/lib/python3.10/site-packages/pbr/cmd/main.pyget_sha   s   r   c                 C   sB   | j rtdjdi t| j d S tdjdi t| j d S )Nz	{version}z!{name}	{version}	{released}	{sha}r	   )shortr   formatr   r   )r   r	   r	   r
   get_info    s   r   c                 C   s   t jj| }t jj| }|r|d rd}nd}|d }n&|d}|d dr5|d dd  }d}nd	}d}|D ]}| sCd}q;| |||d
S )N
is_releasereleasedzpre-releasegit_version.g    )r   versionr   r   )pbr_compatmetadataget_metadataget_versionsplit
startswithisdigit)package_namer   r   r   r   version_partspartr	   r	   r
   r   +   s,   

r   c                 C   sT   t jj D ]!}t|j}djdi |}|d r#|djdi |7 }t| qd S )Nz{name}=={version}r   z  # git sha {sha}r	   )r   r   r   get_distributionsr   project_namer   r   )r   dist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 d S  ty } zt| W Y d }~d S d }~ww )Nz pbr: Python Build Reasonableness)descriptionz-vz	--versionr   r   )actionr   commandszvalid commandszadditional helpcmd)titler)   helpdestTr   zprint sha of package)r.   )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)r*   r.   r(   z-print version info for all installed packages)argparseArgumentParseradd_argumentstrr   r   VersionInfoadd_subparsersrequired
add_parserset_defaultsr   r   r(   
parse_argsr0   	Exceptionr   )parser
subparserscmd_shacmd_info
cmd_freezer   er	   r	   r
   mainR   sR   rC   __main__)
__future__r   r   r2   syspbr._compat.metadatar   pbr.versionr   r   r   r(   rC   __name__exitr	   r	   r	   r
   <module>   s   	/