�
㦧bo � � � d dl Z d dlZd dlZd dlZd dlZd� Zd� Zd� Zd� Z d� Z
d� Zedk r ej
e� � � � dS dS ) � Nc � � t j t j | � � � d� � � � S # t j $ r# t
d� | � � � � �t $ r Y d S w xY w)Nzpbr.jsonzPackage {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 s� � ���z��*��
�
�*�l�:�6�6�8� 8� 8�� �-� J� J� J��3�:�:�<�H�H�I�I�I�� � � ��t�t����s �8; �:A9�8A9c �` � t | j � � d }|rt |� � d S d S )N�sha)� _get_info�name�print)�argsr s r
�get_shar $ s7 � �
�D�I�
�
�u�
%�C�
� �
�c�
�
�
�
�
�� � c �� � | j r.t dj di t | j � � ��� � d S t dj di t | j � � ��� � d S )Nz {version}z!{name} {version} {released} {sha}� )�shortr r r r )r s r
�get_infor * s� � ��z� %�
� �k� �8�8�9�T�Y�#7�#7�8�8�9�9�9�9�9�
�;�4�;� $� $��� �"�"�$� $� %� %� %� %� %r c �l � t | � � }t j | � � j }|r|d rd}nd}|d }nb|� d� � }|d � d� � r|d dd � }d}nd }d}|D ]}|� � � sd}�t | |||�
� � S )N�
is_release�releasedzpre-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�2�:�G�� -��L�!� %�!�H�H�$�H��}�%����
�
�c�*�*�
����'�'��,�,� -���#�A�B�B�'�C�$�H�H��C�!�H�%�
-�
-���|�|�~�~� -�,�H���T�7��h�G�G�G�Gr c �� � t t j d� �� � }|D ]J}t |j � � } dj di |��}|d r| dj di |��z
}t
|� � �Kd S )Nc �4 � | j � � � S )N)�project_name�lower)�dists r
�<lambda>zfreeze.<locals>.<lambda>K s � �4�+<�+B�+B�+D�+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 s� � ��-�3�D�D�F� F� F�L�� � ����*�+�+��+�$�+�3�3�d�3�3����;� 9��0�)�0�8�8�4�8�8�8�F�
�f�
�
�
�
�� r c
�R � t j d�� � } | � dddt t j � d� � � � �� � | � dd d
d�� � }d
|_ |� dd�� � }|�
t �� � |� dd�� � |� dd�� � }|�
t �� � |� dd�� � |� dddd�� � |� dd�� � }|�
t �� � | � � � } |� |� � d S # t $ r}t# |� � Y d }~d S d }~ww xY w)Nz pbr: Python Build Reasonableness)�descriptionz-vz --versionr$ �pbr)�actionr$ �commandszvalid commandszadditional help�cmd)�titler: �help�destTr zprint sha of package)r@ )�funcr zpackage to print sha ofr6 zprint version info for packagezpackage to print info ofz-sz--short�
store_truezonly display package version)r< |