
    l:i                         d dl m Z  d dlZd dlmZm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mZ d
dlmZ  G d de      Zy)    )timeN)PopenPIPE)
gettempdir)uuid4   )settings)ARGUMENT_PLACEHOLDERUSER_COMMAND_MARK)DEVNULLmemoize   )Genericc                   P    e Zd ZdZd Zd Zd Zed        Zd Z	d Z
d Zd	 Zd
 Zy)ZshZSHc                 `    dj                  |t        t        j                  rd      S d      S )Naz  
            {name} () {{
                TF_PYTHONIOENCODING=$PYTHONIOENCODING;
                export TF_SHELL=zsh;
                export TF_ALIAS={name};
                TF_SHELL_ALIASES=$(alias);
                export TF_SHELL_ALIASES;
                TF_HISTORY="$(fc -ln -10)";
                export TF_HISTORY;
                export PYTHONIOENCODING=utf-8;
                TF_CMD=$(
                    thefuck {argument_placeholder} $@
                ) && eval $TF_CMD;
                unset TF_HISTORY;
                export PYTHONIOENCODING=$TF_PYTHONIOENCODING;
                {alter_history}
            }}
        z%test -n "$TF_CMD" && print -s $TF_CMD )nameargument_placeholderalter_history)formatr
   r	   r   )self
alias_names     I/var/www/html/bot/venv/lib/python3.12/site-packages/thefuck/shells/zsh.py	app_aliaszZsh.app_alias   sF    " F!5&44 C  ?#	?* ;=	  ?#	?    c                    t         j                  j                  dd      j                         dk(  rAdt        z   dt        t              z  z   dz   }dj                  || j                  |            S t         j                  j                  t               d	j                  t               j                              }d
j                  |      S )NTHEFUCK_INSTANT_MODEr   truez%{z%}z_
                export PS1="{user_command_mark}$PS1";
                {app_alias}
            )user_command_markr   zthefuck-script-log-{}z
                export THEFUCK_INSTANT_MODE=True;
                export THEFUCK_OUTPUT_LOG={log};
                thefuck --shell-logger {log};
                rm -f {log};
                exit
            )log)osenvirongetlowerr   lenr   r   pathjoinr   r   hex)r   r   marklog_paths       r   instant_mode_aliaszZsh.instant_mode_alias(   s    ::>>0"5;;=G%&(,s3D/E(EFD !%
!;  == ww||5<<UW[[IKH 8$%r   c                     |j                  dd      \  }}|d   |d   cxk(  rdk(  sn |d   |d   cxk(  rdk(  rn ||fS |dd }||fS )N=r   r   "'split)r   aliasr   values       r   _parse_aliaszZsh._parse_alias=   s`    kk#q)e8uRy'C'58uRy+GC+GU{ !BKEU{r   c                      t         j                  j                  dd      j                  d      }t	         fd|D              S )NTF_SHELL_ALIASESr   
c              3   L   K   | ]  }|rd |v rj                  |        yw)r0   N)r8   ).0r6   r   s     r   	<genexpr>z"Zsh.get_aliases.<locals>.<genexpr>F   s.      H#, %%e, Hs   !$)r$   r%   r&   r5   dict)r   raw_aliasess   ` r   get_aliaseszZsh.get_aliasesC   sA    jjnn%7<BB4H H!,H H 	Hr   c                 |    t         j                  j                  dt         j                  j	                  d            S )NHISTFILEz~/.zsh_history)r$   r%   r&   r)   
expanduserr   s    r   _get_history_file_namezZsh._get_history_file_nameI   s.    zz~~j gg001ABD 	Dr   c                 H    dj                  t        t                     |      S )Nz
: {}:0;{}
)r   intr   )r   command_scripts     r   _get_history_linezZsh._get_history_lineM   s    $$S[.AAr   c                 6    d|v r|j                  dd      d   S y)N;r   r   r4   )r   lines     r   _script_from_historyzZsh._script_from_historyP   s"    $;::c1%a((r   c                 *    | j                  ddd      S )Nzeval $(thefuck --alias)z~/.zshrczsource ~/.zshrc)contentr)   reload)_create_shell_configurationrE   s    r   how_to_configurezZsh.how_to_configureV   s#    //.$ 0 & 	&r   c                     t        g dt        t              }|j                  j	                         j                  d      j                         S )z(Returns the version of the current shell)zshz-czecho $ZSH_VERSION)stdoutstderrzutf-8)r   r   r   rV   readdecodestrip)r   procs     r   _get_versionzZsh._get_version\   s;    7 2{{!((17799r   N)__name__
__module____qualname__friendly_namer   r.   r8   r   rA   rF   rJ   rN   rS   r\    r   r   r   r      sG    M?2%* H H
DB&:r   r   )r   r$   
subprocessr   r   tempfiler   uuidr   confr	   constr
   r   utilsr   r   genericr   r   ra   r   r   <module>ri      s.     	 "    ; $ T:' T:r   