a
    *£Þag  ã                   @   s`   d Z ddlZddlZddlZddlZejd dkZejdkZdd„ Z	dd„ Z
d	d
„ Zdd„ ZdS )zConda utils.é    Né   Úntc                 C   sf   d}d}d}z8t j| t jt jd}| ¡ \}}trB| ¡ }| ¡ }W n tyZ   d}Y n0 |||fS )z>Run subprocess with cmd_list and return stdour, stderr, error.Ú F)ÚstdoutÚstderrT)Ú
subprocessÚPopenÚPIPEZcommunicateÚPY3ÚdecodeÚOSError)Úcmd_listr   r   ÚerrorÚp© r   ú<lib/python3.9/site-packages/navigator_updater/utils/conda.pyÚrun_process   s    
ÿ
r   c                   C   s
   t tƒ ƒS )z$Check if conda is available in path.)ÚboolÚget_conda_cmd_pathr   r   r   r   Úis_conda_available,   s    r   c            
      C   s²   g } d}t rdnd}t rdnd}tj tj tj¡¡}|  tj |||¡¡ |  tj tj||¡¡ |  d¡ | D ]:}|dg}t|ƒ\}}}	|	sr| 	d¡s¤| 	d¡rr|} q®qr|S )z Check if conda is found on path.NZScriptsÚbinzconda-script.pyZcondaz	--versionzconda )
ÚWINÚosÚpathÚdirnameÚsysÚprefixÚappendÚjoinr   Ú
startswith)
ZcmdsZ
conda_pathZ
bin_folderZ	conda_exeZ
env_prefixÚcmdr   r   r   r   r   r   r   r   1   s     
r   c                  C   sL   t ƒ } d}| rH| ddg}t|ƒ\}}}zt |¡}W n tyF   Y n0 |S )z"Return conda info as a dictionary.NÚinfoz--json)r   r   ÚjsonÚloadsÚ	Exception)Z	conda_cmdr!   r   ÚoutÚerrr   r   r   r   Úget_conda_infoH   s    
r'   )Ú__doc__r"   r   r   r   Úversion_infor
   Únamer   r   r   r   r'   r   r   r   r   Ú<module>   s   
