3 F\^ @spddlZddlZddlZddlZddlZddZddZddZdd Z d d Z d d Z e dkrlej e dS)Nc CsRytjtj|jdStjk r:tdj|Yntk rLdSXdS)Nzpbr.jsonzPackage {0} not installed)jsonloads pkg_resourcesget_distribution get_metadataDistributionNotFound Exceptionformat) package_namer a/private/var/folders/pf/wv4htv3x0qs2c2mp0dnn0kchsvlck3/T/pip-install-emcbgzcf/pbr/pbr/cmd/main.py _get_metadatasr cCst|jd}|rt|dS)Nsha) _get_infonameprint)argsrr r r get_sha$srcCstdjft|jdS)Nz!{name} {version} {released} {sha})rr rr)rr r r get_info*srcCst|}tj|j}|r4|dr&d}nd}|d}nP|jd}|d jdrb|d dd}d}n"d}d}x|D]}|jspd}qpWt||||d S) NZ is_releasereleasedz pre-releaseZ git_version.g)rversionrrr)r rrrsplit startswithisdigitdict)rmetadatarrrZ version_partspartr r r r/s"    rcCsZttjddd}xB|D]:}t|j}djf|}|drJ|djf|7}t|qWdS)NcSs |jjS)N) project_namelower)distr r r Hszfreeze..)keyz{name}=={version}rz # git sha {sha})sortedr working_setrr"r r)rZ sorted_distsr$infooutputr r r freezeFs    r+cCstjdd}|jdddttjjdd|jdd d d }|jd d d}|j t d|jddd|jddd}|j t d|jddd|jddd}|j t d|j }y|j|Wn*tk r}zt|WYdd}~XnXdS)Nz pbr: Python Build Reasonableness) descriptionz-vz --versionrpbr)actionrcommandszvalid commandszadditional help)titler,helprzprint sha of package)r1)funcrzpackage to print sha ofr)zprint version info for packagezpackage to print info ofr+z-print version info for all installed packages)argparseArgumentParser add_argumentstrr-rZ VersionInfoZadd_subparsersZ add_parser set_defaultsrrr+ parse_argsr2rr)parserZ subparsersZcmd_shaZcmd_infoZ cmd_freezerer r r mainQs,      r;__main__)r3rsysrZ pbr.versionr-r rrrr+r;__name__exitr r r r s