
    l:i                         d dl mZ  e        ddlZddlZddlZddlmZ ddlZddlZddl	m
Z
 d dlmZmZ d dlmZ d dlmZ d d	l mZ d
 Zd Zd Zd Zd Zd Zd Zd Zy)   )init_output    N)
gettempdir)Process)logsconst)shell)settings)Pathc                      t        t        j                               } 	 | j                         j                  S # t
        $ r | j                  j                  cY S w xY w)zReturns parent process pid.)r   osgetpidparentpid	TypeError)procs    Y/var/www/html/bot/venv/lib/python3.12/site-packages/thefuck/entrypoints/not_configured.py_get_shell_pidr      sF    299;D{{}    {{s   9 AAc                      t        t                     j                  dj                  t	        j
                                     S )z=Returns path of special file where we store latest shell pid.z"thefuck.last_not_configured_run_{})r   r   joinpathformatgetpassgetuser     r   &_get_not_configured_usage_tracker_pathr      s4    
&&'L'S'S(  r   c                      t               t        j                         d} t        j                  rdnd}t	               j                  |      5 }t        j                  | |       ddd       y# 1 sw Y   yxY w)z"Records shell pid to tracker file.)r   timewbwN)r   r   sixPY2r   openjsondump)infomodetrackers      r   _record_first_runr)   $   s]    !#IIK!D 774D	/	1	6	6t	< !		$ ! ! !s   A--A6c                  :    t        j                         } | r| d   S y )N)r	   get_history)historys    r   _get_previous_commandr.   .   s     !Gr{r   c                     t               } | j                         syt               }| j                  d      5 }	 t	        j
                  |      }	 ddd       t        t              r|j                  d      |k(  syt               dk(  xs8 t        j                         |j                  dd      z
  t        j                  k  S # t        $ r Y ddd       yw xY w# 1 sw Y   xY w)z;Returns `True` when we know that `fuck` called second time.FrNr   fuckr   r   )r   existsr   r#   r$   load
ValueError
isinstancedictgetr.   r   r   CONFIGURATION_TIMEOUT)tracker_pathcurrent_pidr(   r&   s       r   _is_second_runr;   7   s    9;L  "K			3	 7	99W%D tT"txx+'E!#v- LIIK$((61--0K0KKM  		 	 s(   CC	CCCCC#c                     t        | j                        j                         }|j                  d      5 }| j                  |j                         v cddd       S # 1 sw Y   yxY w)z2Returns `True` when alias already in shell config.r0   N)r   path
expanduserr#   contentreadconfiguration_detailsr=   shell_configs      r   _is_already_configuredrD   K   sY    %**+668D	3 D<$,,0A0A0CCD D Ds   AA$c                    t        | j                        j                         }|j                  d      5 }|j	                  d       |j	                  | j
                         |j	                  d       ddd       y# 1 sw Y   yxY w)zAdds alias to shell config.a
N)r   r=   r>   r#   writer?   rA   s      r   
_configurerI   R   so    %**+668D	3 "<5!08895!" " "s   >A<<Bc                  F   t        j                          t        j                         } | rb| j                  rVt        |       rt        j                  |        yt               r!t        |        t        j                  |        yt                t        j                  |        y)zShows useful information about how-to configure alias on a first run
    and configure automatically on a second.

    It'll be only visible when user type fuck and when alias isn't configured.

    N)r
   initr	   how_to_configurecan_configure_automaticallyrD   r   already_configuredr;   rI   configured_successfullyr)   how_to_configure_alias)rB   s    r   mainrQ   [   sy     MMO!22499!"78##$9:,-(()>? 56r   )systemr   r   r   r$   tempfiler   r   r!   psutilr    r   r   shellsr	   confr
   r   r   r   r)   r.   r;   rD   rI   rQ   r   r   r   <module>rX      sX        	    
     !M(D"7r   