
    ce                        U d Z ddlZddlZddlZddlZddlZdZej        e         e	d<   ej
                            dd          Zej        e         e	d<   defd	Zdd
ej        e         defdZdefdZdefdZddZdS )zBase configuration management.    Nzanaconda-navigatorCONFIG_NAMEz	.anaconda	navigator	SUBFOLDERreturnc                     t           j        dk    rd} d}|D ]}t           j                            |d          }|rt           j                            |          sD| p|} t           j                            |t                    }t           j                            |          r|c S | r| S nPt          j	        t                    5  t           j                            d          cddd           S # 1 swxY w Y   t          d          )zReturn user home directory.nt )HOMEAPPDATAUSERPROFILETMP~Nz(Please define environment variable $HOME)osnameenvirongetpathisdirjoinr   
contextlibsuppressBaseException
expanduserRuntimeError)fallbackpath_env_varspath_env_varcurrentinners        >lib/python3.11/site-packages/anaconda_navigator/config/base.pyget_home_dirr!      sI   	w$.W * 	 	L:>>,;;G RW]]7%;%;   *7H gy99Ew}}U##   	O	  // 	+ 	+7%%c**	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ A
B
BBs   C22C69C6filenamec                     t           j                            t                      t                    }t          j        |d           |  t           j                            ||           S |S )zDReturn absolute path for configuration file with specified filename.T)exist_ok)r   r   r   r!   r   makedirs)r"   results     r    get_conf_pathr'   ;   sQ    ',,|~~y99FK&&&&w||FH---M    c                     t           j                            d          rd	 t          ddd          5 } d|                                                                 v cddd           S # 1 swxY w Y   n# t          $ r Y nw xY wdS )	z9Detect if we are running in an Ubuntu-based distribution.linuxz/etc/lsb-releasertzutf-8)encodingubuntuNF)sysplatform
startswithopenreadlowerOSError)streams    r    	is_ubuntur6   E   s    
|w'' 	($AAA 9V6;;==#6#6#8#889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 	 	 	D	5s4   A4 (A(A4 (A,,A4 /A,0A4 4
B Bc                      t           j                            d          rBt          t	          t
          j                            dd          j        g d                    S dS )z0Detect if we are running in a Gtk-based desktop.r*   XDG_CURRENT_DESKTOPr	   )UnityGNOMEXFCEF)r.   r/   r0   anymapr   r   r    r(   r    is_gtk_desktopr?   Q   sS    
|w'' j3rz~~&;R@@KMgMgMghhiii5r(   c                  `   t                      } t           d}t          j                            t          j                            | |                    rdS t          j                            | t                    }t          j                            t          j                            ||                    sdS t          j        |          D ]d}	 t          j        t          j                            ||          t          j                            | |                     U# t          $ r Y aw xY w	 t          j        
                    |          }t          j        
                    |           } t          j        |           t          j        | |           dS # t          $ r Y dS w xY w)zECheck and fix `.anaconda/navigator/.anaconda/navigator` folder issue.z.iniN)r'   r   r   r   isfiler   r   listdirrenamer4   dirnameshutilrmtreesymlink)rootfiler   r   s       r    fix_recursive_folderrJ   X   sr   D$$$D 
w~~bgll4..//  dI..E7>>"',,ud3344  
5!!  	Ibgll5$//dD1I1IJJJJ 	 	 	D	&&wt$$e

4   s&   AD%%
D21D26A'F 
F-,F-)N)r   N)__doc__r   r   rE   r.   typingr   Finalstr__annotations__r   r   r   r!   Optionalr'   boolr6   r?   rJ   r>   r(   r    <module>rR      s#   % $ $     				  



  "6V\# 5 5 5!w||KEE	6< E E ECc C C C C@ FOC0 C    	4 	 	 	 	         r(   