o
    gi	                     @   s   d dl Z d dlZd dlZd dlZd dlmZmZmZ de	de
edf fddZdd	 Zd
d Zdd Zde	de	fddZdd Zdd ZdS )    N)get_project_dataget_pypi_version	BASE_PATHversionreturn.c                 C   s<   |  d}t|dk rtd|  tjd tdd |D S )N.   zInvalid version format: )filec                 s   s    | ]}t |V  qd S N)int).0part r   I/home/ubuntu/.local/lib/python3.10/site-packages/utils/version_checker.py	<genexpr>   s    z parse_version.<locals>.<genexpr>)splitlenprintsysstderrtuple)r   partsr   r   r   parse_version   s   
r   c                  C   sT   zt jg ddddd} | j }|dr|dd  W S |W S  ty)   Y dS w )N)gitdescribez--tagsz
--abbrev=0T)capture_outputtextcheckv   z0.0.0)
subprocessrunstdoutstrip
startswith	Exception)resulttagr   r   r   get_git_version   s   
r(   c                   C   s   t jdS )Nvast-cli-fork)	importlibmetadatar   r   r   r   r   get_pip_version    s   r,   c                  C   s   t jd } tj| }|dkS )Nr   zvast.py)r   argvospathbasename)script_pathexecutable_namer   r   r   is_pip_package$   s   
r3   stable_versionc                 C   s>   t  rdtv rtj dt d|  S tj d|  S d|  S )Nztest.pypi.orgz4 -m pip install --force-reinstall --no-cache-dir -i z vast-cli-fork==z@ -m pip install --force-reinstall --no-cache-dir vast-cli-fork==z5git fetch --all --tags --prune && git checkout tags/v)r3   r   r   
executable)r4   r   r   r   get_update_command+   s
   
r6   c                   C   s   t  rt S t S r
   )r3   r,   r(   r   r   r   r   get_local_version5   s   r7   c                  C   s   t d} t| }t }t|}t|}||krd S td| d| d }|dvr0td d S t|}td tj	|dddtj
tj
d	}td
 td d S )Nr)   zUpdate available from z to z". Would you like to update [Y/n]: )y zXYou selected no. If you don't want to check for updates each time, update vast_config.pyzUpdating...T)shellr   r   r"   r   zAUpdate completed successfully!
Attempt to run your command again!r   )r   r   r7   r   inputlowerr   r6   r    r!   PIPEr   exit)	pypi_datapypi_versionlocal_versionlocal_tuple
pypi_tupleuser_wants_updateupdate_command_r   r   r   check_for_update;   s6   	rG   )r   r.   importlib.metadatar*   r    utils.pypi_apir   r   r   strr   r   r   r(   r,   r3   r6   r7   rG   r   r   r   r   <module>   s    	
