U V @spddlZddlZddlZddlZddlZddZddZddZdd Z d d Z d d Z e dkrle e dS)NcCsVztt|dWStjk r<td|Yntk rPYdSXdS)Nzpbr.jsonzPackage {0} not installed)jsonloads pkg_resourcesget_distributionZ get_metadataZDistributionNotFound Exceptionformat)Z package_namer/main.py _get_metadatasr cCst|jd}|rt|dS)Nsha) _get_infonameprint)argsr rrr get_sha$srcCstdjft|jdS)Nz!{name} {version} {released} {sha})rrr r )rrrr get_info*srcCst|}t|j}|r4|dr&d}nd}|d}nL|d}|ddrb|ddd}d}nd }d}|D]}|snd}qnt||||d S) NZ is_releasereleasedz pre-releaseZ git_version.g)r versionr r)r rrrsplit startswithisdigitdict)r Zmetadatarrr Z version_partspartrrr r /s"   r cCsFtjD]:}t|j}djf|}|dr8|djf|7}t|qdS)Nz{name}=={version}r z # git sha {sha})rZ working_setr Z project_namerr)rZdistinfooutputrrr freezeFs    r c Cstjdd}|jdddttjdd|jdd d d }|jd d d}|j t d|jddd|jddd}|j t d|jddd|jddd}|j t d| }z||Wn*tk r}z t|W5d}~XYnXdS)Nz pbr: Python Build Reasonableness) descriptionz-vz --versionrpbr)actionrZcommandszvalid commandszadditional help)titler!helpr zprint sha of package)r%)funcr zpackage to print sha ofrzprint version info for packagezpackage to print info ofr z-print version info for all installed packages)argparseArgumentParser add_argumentstrr"rZ VersionInfoZadd_subparsersZ add_parserZ set_defaultsrrr parse_argsr&rr)parserZ subparsersZcmd_sharerrr mainOsB   r.__main__)r'rsysrZ pbr.versionr"r rrr r r.__name__exitrrrr s