
    8xd                    r   d Z ddlmZ ddlZddlZddlZddlZddlmZm	Z	m
Z
mZmZ ddlmZ 	  ee          Z eej                  Zej        dk    r eed          Zd	Zn eed
          Zdej        dd         z  Zg ZdZd Zd Zej        fddZd Zd Zd Z d Z!d Z"e#dk    r e"             dS dS )zY
This is code that is added to noarch Python packages. See
conda_build/noarch_python.py.
    )annotationsN)dirnameexistsisdirjoinnormpath)PathFwin32ScriptszLib/site-packagesbinzlib/python%s/site-packages   s(   ^(#!(?:[ ]*)(/(?:\\ |[^ \n\r\t])*)(.*))$c                    	 t          j        | |           d S # t          t          f$ r t	          j        | |           Y d S w xY wN)oslinkOSErrorAttributeErrorshutilcopy2)srcdsts     1lib/python3.11/site-packages/conda_build/_link.py_linkr   +   sZ    
S^$   S#s    &AAc                R    	 t          j        |            d S # t          $ r Y d S w xY wr   )r   unlinkr   )paths    r   _unlinkr   3   s:    
	$   s    
&&r   str | os.PathLikeversion_infotuple[int, ...]returnstrc                    t          |           } |d         dk    r"t          |                     d                    S t          | j        dz  | j         d|d          |d          dz            S )Nr      z.pyc__pycache__z	.cpython-   )r	   r"   with_suffixparentstem)r   r   s     r   pyc_fr*   :   s     ::DA!4##F++,,,
	Y
G
Ga
G,q/
G
G
G	H      c                   |D ]}t          t          | |          }t          t          ||          }t          |          }t	          |          st          j        |           t          |          rt          |           t          ||           | d| }t                              |           |                    d          r't                              t          |                     d S )N/z.py)r   THIS_DIRPREFIXr   r   r   makedirsr   r   r   FILESappendendswithr*   )src_rootdst_rootfilesfr   r   dst_dirs          r   
link_filesr9   H   s     # #8Xq))68Q''#,,W~~ 	!K   #;; 	CLLLc3!Q::e 	#LLq"""# #r+   c                :   t          | d          r|                                 } t          j        t          | t          j                  }|r|                                \  }}}t          |          dk    r|                    d          	                    d          d         }d
                    ||                    d                    }|                     ||                    d                    } t          | d          r|                                 } | S )Nencode   zutf-8r-   z#!/usr/bin/env {}{}decode)hasattrr;   rematchSHEBANG_REGEX	MULTILINEgroupslenr>   splitformatreplace)datashebang_matchwhole_shebang
executableoptionsexecutable_namenew_shebangs          r   replace_long_shebangrP   Y   s    tX {{}}H]D",??M L-:-A-A-C-C*z7}##(//88>>sCCBGO/66!8!8 K <<{/A/A'/J/JKKDtX {{}}Kr+   c                j   t          t          d|           }t          t          |           }t          j        dk    rt          j        ||dz              t                              d| z             t          j        t          t          ddt          j
        z  z            |dz              t                              d| z             d S t          |          5 }|                                }d d d            n# 1 swxY w Y   t          |d	          5 }t          d
t          t          j                  z            }|                    |           |                    |           d d d            n# 1 swxY w Y   t#          j        |d           t                              d| z             d S )Npython-scriptsr
   z
-script.pyzScripts/%s-script.pyz
cli-%d.exe   z.exezScripts/%s.exewz#!%s
i  zbin/%s)r   r.   BIN_DIRsysplatformr   r   r1   r2   tuple__itemsize__openreadrP   r   rL   writer   chmod)fnr   r   firI   foshebangs          r   create_scriptrb   k   s   
x)2
.
.C
w

C
|wS#,---+b0111<1u/A+ABCCS6\	
 	
 	
 	%*+++++#YY 	"7799D	 	 	 	 	 	 	 	 	 	 	 	 	 	 	#s^^ 	r*8hs~6N6N+NOOGHHWHHTNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	eX]#####s%   C;;C?C?AE66E:=E:c                    | sd S t          t                    st          j        t                     | D ]}t	          |           d S r   )r   rU   r   mkdirrb   )r6   r^   s     r   create_scriptsre      sW     >> 
  b r+   c            	        t          t          d                    t          dt          t          d                    t          ddt          d                    t	          t          t          ddt          d         z            d          5 } t          D ]}|                     d|z             	 d d d            d S # 1 swxY w Y   d S )	NrR   zsite-packagesExamplesz
conda-metaz%s.filesdistrT   z%s
)	re   DATAr9   SITE_PACKAGESrZ   r   r/   r1   r\   )r`   r7   s     r   mainrk      s    4()***tO/DEEEz:tJ'7888	d6<d6l)BCCS	I	I !R 	! 	!AHHVaZ    	!! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !s   
#B;;B?B?__main__)r   r   r   r    r!   r"   )$__doc__
__future__r   r   r@   r   rV   os.pathr   r   r   r   r   pathlibr	   ri   __file__r.   prefixr/   rW   rU   rj   versionr1   rB   r   r   r   r*   r9   rP   rb   re   rk   __name__ r+   r   <module>rv      s    # " " " " " 				 				  



 : : : : : : : : : : : : : :       78	#*		<7d69%%G'MMd65!!G03;rr?BM 	      %($4    # # #"  $$ $ $*  ! ! ! zDFFFFF r+   