U
ifX @ s d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlm Z d dl
mZmZ d dlm
Z
d dlZedZG d d
d
eZG dd deeZdS )
N)ST_MODE) sysconfig)Command)newer)convert_path Mixin2to3)logs ^#!.*python[0-9.]*([ ].*)?$c @ sH e Zd ZdZdddgZdgZdd Zdd Zd
d Zdd
Z dd Z
dS )
build_scriptsz("build" scripts (copy and fixup #! line))z
build-dir=dzdirectory to "build" (copy) to)forcefz1forcibly build everything (ignore file timestamps)zexecutable=ez*specify final destination interpreter pathr c C s" d | _ d | _d | _d | _d | _d S N) build_dirscriptsr
executableoutfilesself r D/opt/alt/python38/lib64/python3.8/distutils/command/build_scripts.pyinitialize_options s
z build_scripts.initialize_optionsc C s | dddd | jj| _d S )NZbuild)r r )r r )r r )Zset_undefined_optionsZdistributionr r r r r finalize_options% s zbuild_scripts.finalize_optionsc C s | j S r )r r r r r get_source_files, s zbuild_scripts.get_source_filesc C s | j s
d S | d S r )r copy_scriptsr r r r run/ s zbuild_scripts.runc
C s | | j g }g }| jD ]}d}t|}tj| jtj|}|| | j slt
||sltd| qzt
|d}W n tk
r | js d }Y nXX t|j\}}|d | } | s| d| qt| }
|
rd}|
dpd}|rtd || j || | jstjs*| j}n(tjtd
dtdtd
f }t|}d| | d }
z|
d W n$ tk
r t d!|
Y nX z|
| W n& tk
r t d!|
|Y nX t
|d}|"|
|#|$ W 5 Q R X |r8|% q|r"|% || | &|| qtj'dkr|D ]`}| jrdtd| nDt(|t) d@ }|dB d@ }||krJtd||| t*|| qJ||fS )NFznot copying %s (up-to-date)rbr z%s is an empty file (skipping)T zcopying and adjusting %s -> %sZBINDIRz
python%s%sZVERSIONZEXEs #!
zutf-8z.The shebang ({!r}) is not decodable from utf-8zAThe shebang ({!r}) is not decodable from the script encoding ({})wbposixzchanging mode of %si im z!changing mode of %s from %o to %o)+Zmkpathr r r ospathjoinbasenameappendr r r debugopenOSErrordry_runtokenizedetect_encodingreadlineseekwarn
first_line_rematchgroupinfor Zpython_buildr Zget_config_varfsencodedecodeUnicodeDecodeError
ValueErrorformatwrite
writelines readlinescloseZ copy_filenamestatr chmod)r r
updated_filesZscriptZadjustZoutfiler encodinglinesZ
first_liner1 Zpost_interpr ZshebangZoutffileZoldmodeZnewmoder r r r 5 s
zbuild_scripts.copy_scriptsN)__name__
__module____qualname__ZdescriptionZuser_optionsZboolean_optionsr r r r r r r r r r s r c @ s e Zd Zdd ZdS )build_scripts_2to3c C s&