
    wi                    n   d dl mZ d dlZd dlZd dl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 d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ dZej        Zej         Z!d'dZ" ej#        d          d(d            Z$d)dZ%ej&        d*d            Z'd+d!Z(d,d"Z)d,d#Z*d-d&Z+dS ).    )annotationsN)	Generator)Sequence)IO)	lang_base)
envcontext)PatchesT)UNSET)Var)Prefix)CalledProcessErrorrbenvfilenamestrreturn	IO[bytes]c                    t           j                            d          }|                    |                               d          S )Nzpre_commit.resourcesrb)	importlib	resourcesfilesjoinpathopen)r   r   s     i/root/.openclaw/workspace/chatterbox_venv_py311/lib/python3.11/site-packages/pre_commit/languages/ruby.py_resource_bytesior      s9    %%&<==E>>(##((...       )maxsizec                 P    t          d dD                       rdS t          j        S )Nc              3  >   K   | ]}t          j        |          V  d S N)r   
exe_exists).0exes     r   	<genexpr>z&get_default_version.<locals>.<genexpr>"   s-      
@
@9$$
@
@
@
@
@
@r   )rubygemsystem)allCDEFAULT r   r   get_default_versionr-       s.    

@
@
@
@
@@@ xyr   venvlanguage_versionr	   c                6   dt           j                            | d          fdt          fdf}|dk    rB|dt           j                            | dd          t           j        t          d          fffz  }n|d| fdt           j                            | dd          t           j        t           j                            | d	          t           j        t           j                            | d          t           j        t          d          fffz  }|d
vr|d|ffz  }|S )NGEM_HOMEgemsGEM_PATH)BUNDLE_IGNORE_CONFIG1r(   PATHbin
RBENV_ROOTshims>   r(   defaultRBENV_VERSION)ospathjoinr
   pathsepr   )r.   r/   patchess      r   get_env_patchrA   (   s   
 
RW\\$//0	U%G
 8##GLLvu55rzKK
 	
 	4 GLLvu55rzGLLw//GLLu--rz3v;;	
 		
 444_&6799Nr   prefixr   versionGenerator[None]c              #     K   t          j        | t          |          }t          t	          ||                    5  d V  d d d            d S # 1 swxY w Y   d S r!   )r   environment_dirENVIRONMENT_DIRr   rA   )rB   rC   envdirs      r   in_envrI   K   s      &vHHF	M&'22	3	3                   s   AAAdestNonec                    t          |           5 }t          j        |          5 }|                    |           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )N)fileobj)r   tarfiler   
extractall)r   rJ   biotfs       r   _extract_resourcerR   R   s    	8	$	$  \#&&& 	 "MM$	  	  	  	  	  	  	  	  	  	  	  	  	  	  	                                    s3   A AA A	A A	A  A$'A$c                v   t          j        | t          |          }t          d|                     d                     t          j        |                     d          |           |t          j        k    rBt          j        
                    |d          }t          d|           t          d|           d S d S )Nzrbenv.tar.gz.r   pluginszruby-download.tar.gzzruby-build.tar.gz)r   rF   rG   rR   r=   shutilmover*   r+   r<   r>   )rB   rC   rH   plugins_dirs       r   _install_rbenvrY   X   s     &vHHFnfkk#&6&6777
KG$$f--- !)gll69550+>>>-{;;;;; r   c                    	 t          j        | dd|f           d S # t          $ r t          j        | dd|f           Y d S w xY w)Nr   downloadinstall)r   	setup_cmdr   )rB   rC   s     r   _install_rubyr^   h   sj    CFWj'$BCCCCC C C CFWi$ABBBBBBCs    "AAadditional_dependenciesSequence[str]c                   t          j        | t          |          }|dk    rt          | |           t	          | |          5  t          j        | d           |t          j        k    rt          | |           t          j        | d           d d d            n# 1 swxY w Y   t	          | |          5  t          j        | ddg| 	                    d          R            t          j        | dddd	d
dt          j                            |d          dt          j                            |dd          g	| 	                    d          |R            d d d            d S # 1 swxY w Y   d S )Nr(   )r   init-)r   rehashr'   buildz.gemspecr\   z--no-documentz--no-format-executablez--no-user-installz--install-dirr2   z--bindirr7   z.gem)r   rF   rG   rY   rI   r]   r*   r+   r^   starr<   r=   r>   )rB   rC   r_   rH   s       r   install_environmentrg   s   s    &vHHF(vw'''FG$$ 	= 	= (>???!)##fg...(;<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 
	 	  
 
UG>fkk*&=&=>>	
 	
 	
 	y!9#ff!=!=BGLL?? V$$ (? 
	
 
	
 
	
	
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
s&   ABB B4B!E""E&)E&)r   r   r   r   )r   r   )r.   r   r/   r   r   r	   )rB   r   rC   r   r   rD   )r   r   rJ   r   r   rK   )rB   r   rC   r   r   rK   )rB   r   rC   r   r_   r`   r   rK   ),
__future__r   
contextlib	functoolsimportlib.resourcesr   os.pathr<   rV   rN   collections.abcr   r   typingr   pre_commit.constants	constantsr*   
pre_commitr   pre_commit.envcontextr   r	   r
   r   pre_commit.prefixr   pre_commit.utilr   rG   basic_health_checkhealth_checkbasic_run_hookrun_hookr   	lru_cacher-   rA   contextmanagerrI   rR   rY   r^   rg   r,   r   r   <module>r{      s   " " " " " "                % % % % % % $ $ $ $ $ $                               , , , , , , * * * * * * ' ' ' ' ' ' % % % % % % $ $ $ $ $ $ . . . . . .+#/ / / /
 Q           F           < < < < C C C C
 
 
 
 
 
r   