| Current Path : /usr/lib/python3/dist-packages/uaclient/__pycache__/ |
| Current File : //usr/lib/python3/dist-packages/uaclient/__pycache__/version.cpython-38.pyc |
U
��.d< � @ s� d Z ddlZddlZddlmZ ddlmZ ddlm Z m
Z
mZ ddlm
Z
mZ ddlmZ ddlmZ d Zd
ZdZed�d
d�Zee d�dd�Zee d�dd�ZdS )z"
Client version related functions
� N)�inf)�Optional)�compare_versions� get_apt_cache_policy_for_package�get_apt_cache_time)�CANDIDATE_CACHE_PATH�UAC_RUN_PATH)�ProcessExecutionError)�subpz27.14.4z
27.14.4~20.04zCandidate: (?P<candidate>.*?)\n)�returnc C sv t �d�st S tj�tj�t��} tj�tj�| d��rrdddddg}zt|�\}}|� � W S t
k
rp Y nX tS )aO Return the packaged version as a string
Prefer the binary PACKAGED_VESION set by debian/rules to DEB_VERSION.
If unavailable, check for a .git development environments:
a. If run in our upstream repo `git describe` will gives a leading
XX.Y so return the --long version to allow daily build recipes
to count commit offset from upstream's XX.Y signed tag.
b. If run in a git-ubuntu pkg repo, upstream tags aren't visible,
believe __VERSION__ is correct - there is and MUST always be a
test to make sure it matches debian/changelog
z@@PACKAGED_VERSIONz.gitZgitZdescribez
--abbrev=8z--match=[0-9]*z--long)�PACKAGED_VERSION�
startswith�os�path�dirname�__file__�exists�joinr
�stripr �__VERSION__)Ztopdir�cmd�out�_� r �2/usr/lib/python3/dist-packages/uaclient/version.py�get_version s
r c
C s� t � pt} tj�t�r&t�t�j| k r�d }zZtd�}t �
t|�}|r�|�d�}tj
tdd� ttd��}|�|� W 5 Q R X |W S W n$ tk
r� |d k r�| Y S Y nX z0ttd��}|�� �� W 5 Q R � W S Q R X W n tk
r� Y nX d S )Nzubuntu-advantage-tools� candidateT)�exist_ok�w�r)r r r r r r �stat�st_mtimer �re�search�CANDIDATE_REGEX�group�makedirsr �open�write� Exception�readr )Zlast_apt_cache_updateZcandidate_versionZpolicy�match�fr r r �get_last_known_candidate1 s0
��
$r- c C s t � } | rt| t� d�r| S d S )N�gt)r- r r )r r r r �check_for_new_versionP s r/ )�__doc__�os.pathr r"