]W@sddlZddlZddlmZddlmZddlmZddlm Z ddl m Z m Z ddlm Z ddlZejdZGd d d eZGd d d ee ZdS) N)ST_MODE) sysconfig)Command)newer) convert_path Mixin2to3)logs^#!.*python[0-9.]*([ ].*)?$c@sjeZdZdZdddgZdgZd d Zd dZddZddZ ddZ dS) build_scriptsz("build" scripts (copy and fixup #! line) build-dir=ddirectory to "build" (copy) toforcef1forcibly build everything (ignore file timestamps executable=e*specify final destination interpreter pathcCs1d|_d|_d|_d|_d|_dS)N) build_dirscriptsr executableoutfiles)selfr2/opt/alt/python35/lib64/python3.5/build_scripts.pyinitialize_optionss     z build_scripts.initialize_optionscCs)|jdddd|jj|_dS) NZbuildr rr r)r r)r r )rr)Zset_undefined_optionsZ distributionr)rrrrfinalize_options%s  zbuild_scripts.finalize_optionscCs|jS)N)r)rrrrget_source_files,szbuild_scripts.get_source_filescCs|js dS|jdS)N)r copy_scripts)rrrrrun/s zbuild_scripts.runc"Cs|j|jg}g}x|jD]}d}t|}tjj|jtjj|}|j||j rt || rt j d|q&yt |d}Wn$tk r|jsd}Yn|Xtj|j\}}|jd|j} | s!|jd|q&tj| } | rQd}| jdpNd} |rt jd ||j|j||jstjs|j} n:tjjtjd d tjd tjd f} tj| } d| | d} y| jdWn'tk r-t dj!| YnXy| j|Wn*tk rkt dj!| |YnXt |d'}|j"| |j#|j$WdQRX|r|j%q&|r|j%|j||j&||q&Wtj'dkr|x|D]y}|jr!t jd|qtj(|t)d@}|dBd@}||krt jd|||tj*||qW||fS)NFznot copying %s (up-to-date)rbrz%s is an empty file (skipping)Tzcopying and adjusting %s -> %sBINDIRz python%s%sVERSIONEXEs#!s zutf-8z.The shebang ({!r}) is not decodable from utf-8zAThe shebang ({!r}) is not decodable from the script encoding ({})wbposixzchanging mode of %siimz!changing mode of %s from %o to %o)+Zmkpathrrrospathjoinbasenameappendr rrdebugopenOSErrordry_runtokenizedetect_encodingreadlineseekwarn first_line_rematchgroupinforZ python_buildrget_config_varfsencodedecodeUnicodeDecodeError ValueErrorformatwrite writelines readlinescloseZ copy_filenamestatrchmod)rr updated_filesZscriptZadjustZoutfilerencodinglinesZ first_liner6Z post_interprZshebangZoutffileZoldmodeZnewmoderrrr5s $                         zbuild_scripts.copy_scriptsN)r r r )r rr)rrr) __name__ __module__ __qualname__ descriptionZ user_optionsZboolean_optionsrrrrrrrrrr s       r c@seZdZddZdS)build_scripts_2to3cCs5tj|\}}|js+|j|||fS)N)r rr/Zrun_2to3)rrrFrrrrs  zbuild_scripts_2to3.copy_scriptsN)rJrKrLrrrrrrNs rN)r'rerDrZ distutilsrZdistutils.corerZdistutils.dep_utilrZdistutils.utilrrrr0compiler5r rNrrrrs