
    l:ij                         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)    N)PopenPIPE)
gettempdir)uuid4   )settings)ARGUMENT_PLACEHOLDERUSER_COMMAND_MARK)DEVNULLmemoize   )Genericc                   J    e Zd Zd Zd Zd Zd Zed        Zd Z	d Z
d Zd Zy	)
Bashc                 `    dj                  |t        t        j                  rd      S d      S )NaH  
            function {name} () {{
                TF_PYTHONIOENCODING=$PYTHONIOENCODING;
                export TF_SHELL=bash;
                export TF_ALIAS={name};
                export TF_SHELL_ALIASES=$(alias);
                export TF_HISTORY=$(fc -ln -10);
                export PYTHONIOENCODING=utf-8;
                TF_CMD=$(
                    thefuck {argument_placeholder} "$@"
                ) && eval "$TF_CMD";
                unset TF_HISTORY;
                export PYTHONIOENCODING=$TF_PYTHONIOENCODING;
                {alter_history}
            }}
        zhistory -s $TF_CMD; )nameargument_placeholderalter_history)formatr	   r   r   )self
alias_names     J/var/www/html/bot/venv/lib/python3.12/site-packages/thefuck/shells/bash.py	app_aliaszBash.app_alias   sE     F!5&44 1  ?	?& ;=	  ?	?    c                    t         j                  j                  dd      j                         dk(  r;t        dt        t              z  z   }dj                  || j                  |            S t         j                  j                  t               dj                  t               j                              }dj                  |	      S )
NTHEFUCK_INSTANT_MODEr   true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 {log};
                exit
            )log)osenvirongetlowerr
   lenr   r   pathjoinr   r   hex)r   r   marklog_paths       r   instant_mode_aliaszBash.instant_mode_alias%   s    ::>>0"5;;=G$tc2C.D'DDD !%
!;  == ww||5<<UW[[IKH 8$%r   c                     |j                  ddd      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 )	Nzalias r   r   =r   "')replacesplit)r   aliasr   values       r   _parse_aliaszBash._parse_alias8   so    mmHb!4::3B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)r.   N)r6   ).0r4   r   s     r   	<genexpr>z#Bash.get_aliases.<locals>.<genexpr>A   s.      H#, %%e, Hs   !$)r"   r#   r$   r3   dict)r   raw_aliasess   ` r   get_aliaseszBash.get_aliases>   sA    jjnn%7<BB4H H!,H H 	Hr   c                 |    t         j                  j                  dt         j                  j	                  d            S )NHISTFILEz~/.bash_history)r"   r#   r$   r'   
expanduser)r   s    r   _get_history_file_namezBash._get_history_file_nameD   s.    zz~~j gg001BCE 	Er   c                 $    dj                  |      S )Nz{}
)r   )r   command_scripts     r   _get_history_linezBash._get_history_lineH   s    ~~n--r   c                 L   t         j                  j                  t         j                  j                  d      d      rd}nBt         j                  j                  t         j                  j                  d      d      rd}nd}| j	                  d|dj                  |      	      S )
N~z.bashrcz	~/.bashrcz.bash_profilez~/.bash_profilezbash configzeval "$(thefuck --alias)"z	source {})contentr'   reload)r"   r'   r(   rB   _create_shell_configurationr   )r   configs     r   how_to_configurezBash.how_to_configureK   s    77<<**3/; FWW\\"'',,S1?C&F"F//0&&v. 0 0 	0r   c                     t        g dt        t              }|j                  j	                         j                  d      j                         S )z(Returns the version of the current shell)bashz-czecho $BASH_VERSION)stdoutstderrzutf-8)r   r   r   rP   readdecodestrip)r   procs     r   _get_versionzBash._get_versionX   s;    9 2{{!((17799r   N)__name__
__module____qualname__friendly_namer   r,   r6   r   r?   rC   rF   rM   rV    r   r   r   r      sA    M?.%& H H
E.0:r   r   )r"   
subprocessr   r   tempfiler   uuidr   confr   constr	   r
   utilsr   r   genericr   r   r[   r   r   <module>rc      s+    	 "    ; $ Q:7 Q:r   