
    l:i                         d dl mZmZ d dlmZ d dlZd dlZd dlZddlmZ ddl	m
Z
 ddlmZ ddlmZmZ d	d
lmZ  edd      d        Z ed      d        Z G d de      Zy)    )PopenPIPE)timeN   )logs)settings)ARGUMENT_PLACEHOLDER)DEVNULLcache   )Generic~/.config/fish/config.fishz~/.config/fish/functionsc                     t        g dt        t              }|j                  j	                         j                  d      j                         j                  d      }|D ci c]
  }|| vs|| c}S c c}w )N)fish-ic	functionsstdoutstderrutf-8
)r   r   r
   r   readdecodestripsplit)
overriddenprocr   funcs       J/var/www/html/bot/venv/lib/python3.12/site-packages/thefuck/shells/fish.py_get_functionsr       sa    -d7KD  "))'288:@@FI#,G4J0FD$JGGGs   #	A5-A5c                 p   i }t        g dt        t              }|j                  j	                         j                  d      j                         }|s|S |j                  d      D ]L  }dD ]:  }|j                  ddd      j                  |d      }t        |      d	k(  s5|\  }} n C|| vsH|||<   N |S )
N)r   r   aliasr   r   r   ) =zalias  r   r   )
r   r   r
   r   r   r   r   r   replacelen)	r   aliasesr   	alias_outr"   	separatorsplit_aliasnamevalues	            r   _get_aliasesr.      s    G)$wGD  "))'288:I& 	"# 	I--"a8>>y!LK;1$)e		 z!!GDM	" N    c                   ^    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zy)Fishz
Fish Shellc                    t         j                  j                  dt         j                  j                  dd            }h d}|j                  d      D ]!  }|j	                  |j                                # t        |      S )NTHEFUCK_OVERRIDDEN_ALIASESTF_OVERRIDDEN_ALIASESr%   >   cdlsmangrepopen,)osenvirongetr   addr   sorted)selfr   defaultr"   s       r   _get_overridden_aliaseszFish._get_overridden_aliases+   sf    ZZ^^$@$&JJNN3JB$OQ
5%%c* 	'EKK&	'gr/   c                 Z    t         j                  rd}nd}dj                  ||t              S )Nzd    builtin history delete --exact --case-sensitive -- $fucked_up_command
    builtin history merge
r%   a!  function {0} -d "Correct your previous console command"
  set -l fucked_up_command $history[1]
  env TF_SHELL=fish TF_ALIAS={0} PYTHONIOENCODING=utf-8 thefuck $fucked_up_command {2} $argv | read -l unfucked_command
  if [ "$unfucked_command" != "" ]
    eval $unfucked_command
{1}  end
end)r   alter_historyformatr	   )r@   
alias_namerD   s      r   	app_aliaszFish.app_alias3   s5    !!;M M vj-9MN	Or/   c                 t    | j                         }t        |      }t        |      }|j                  |       |S )N)rB   r    r.   update)r@   r   r   raw_aliasess       r   get_aliaseszFish.get_aliasesD   s8    113
":.	":.%r/   c                     | j                         }|j                  d      d   }||v r||   |k7  r|j                  |||   d      S ||v r!dj                  |j                  dd            S |S )Nr#   r   r   zfish -ic "{}""z\")rK   r   r&   rE   )r@   command_scriptr(   binarys       r   _expand_aliaseszFish._expand_aliasesK   s}    ""$%%c*1-WF!:!))&'&/1EEw#**>+A+A#u+MNN!!r/   c                 @    t         j                  j                  d      S )Nz~/.config/fish/fish_history)r;   path
expanduserr@   s    r   _get_history_file_namezFish._get_history_file_nameU   s    ww!!"?@@r/   c                 H    dj                  |t        t                           S )Nz- cmd: {}
   when: {}
)rE   intr   )r@   rN   s     r   _get_history_linezFish._get_history_lineX   s    *11.#df+NNr/   c                 6    d|v r|j                  dd      d   S y)Nz- cmd: r   r%   )r   )r@   lines     r   _script_from_historyzFish._script_from_history[   s#    ::i+A..r/   c                 $    dj                  |      S )Nz; and joinr@   commandss     r   and_z	Fish.and_a   s    ~~h''r/   c                 $    dj                  |      S )Nz; or r]   r_   s     r   or_zFish.or_d   s    }}X&&r/   c                 *    | j                  ddd      S )Nzthefuck --alias | sourcer   r   )contentrR   reload)_create_shell_configurationrT   s    r   how_to_configurezFish.how_to_configureg   s#    ///- 0  	r/   c                     t        ddgt        t              }|j                  j	                         j                  d      j                         d   S )z(Returns the version of the current shellr   z	--versionr   r   )r   r   r
   r   r   r   r   )r@   r   s     r   _get_versionzFish._get_versionm   sA    fk*4H{{!((1779"==r/   c                     	 | j                  |      S # t        $ r+ t        j                  dt	        j
                                Y y w xY w)NzCan't update history)_put_to_historyIOErrorr   	exceptionsysexc_info)r@   commands     r   put_to_historyzFish.put_to_historyr   s?    	C''00 	CNN13<<>B	Cs    1AAc                 L   | j                         }t        j                  j                  |      rit	        |d      5 }| j                  |      }t        j                  r!|j                  |j                  d             n|j                  |       ddd       yy# 1 sw Y   yxY w)z%Puts command script to shell history.ar   N)
rU   r;   rR   isfiler9   rX   sixPY2writeencode)r@   rN   history_file_namehistoryentrys        r   rm   zFish._put_to_historyx   s     77977>>+,'- )..~>77MM%,,w"78MM%() ) -) )s   ABB#N)__name__
__module____qualname__friendly_namerB   rG   rK   rP   rU   rX   r[   ra   rc   rh   rk   rs   rm    r/   r   r1   r1   (   sL     MO""AO('>
C	)r/   r1   )
subprocessr   r   r   r;   rp   rw   r%   r   confr   constr	   utilsr
   r   genericr   r    r.   r1   r   r/   r   <module>r      sk    "  	 
 
   ( "  #%?@H AH #$ %&Y)7 Y)r/   