ó p®¸Qc@sdZdZddlZddlZddlmZddlmZddlm Z ddl m Z ddl m Z ejd ƒZd efd „ƒYZdS( sRdistutils.command.build_scripts Implements the Distutils 'build_scripts' command.s$Id$iÿÿÿÿN(tST_MODE(tCommand(tnewer(t convert_path(tlogs^#!.*python[0-9.]*([ ].*)?$t build_scriptscBsSeZdZdddgZdgZd „Zd „Zd „Zd „Zd„Z RS(s("build" scripts (copy and fixup #! line)s build-dir=tdsdirectory to "build" (copy) totforcetfs1forcibly build everything (ignore file timestampss executable=tes*specify final destination interpreter pathcCs1d|_d|_d|_d|_d|_dS(N(tNonet build_dirtscriptsRt executabletoutfiles(tself((s5/sys/lib/python2.7/distutils/command/build_scripts.pytinitialize_optionss     cCs)|jddddƒ|jj|_dS( NtbuildRR RR (s build_scriptss build_dir(sforcesforce(s executables executable(tset_undefined_optionst distributionR (R((s5/sys/lib/python2.7/distutils/command/build_scripts.pytfinalize_options%s  cCs|jS(N(R (R((s5/sys/lib/python2.7/distutils/command/build_scripts.pytget_source_files,scCs|js dS|jƒdS(N(R t copy_scripts(R((s5/sys/lib/python2.7/distutils/command/build_scripts.pytrun/s c Csßtdƒ}|j|jƒg}x|jD]}d}t|ƒ}tjj|jtjj|ƒƒ}|j |ƒ|j r¥t ||ƒ r¥t j d|ƒq,nyt|dƒ}Wn&tk rà|jsׂnd}n]X|jƒ}|s |jd|ƒq,ntj|ƒ}|r=d}|jdƒp7d} n|rt jd||jƒ|jst|d ƒ} |jƒsš| jd |j| fƒnK| jd tjj|jd ƒd |jd ƒ|jdƒfƒ| fƒ| j|jƒƒ| jƒn|r>|jƒq>q,|r.|jƒn|j||ƒq,Wtj dkrÛx‡|D]|} |jrzt jd| ƒqXtj!| ƒt"d@} | dBd@} | | krXt jd| | | ƒtj#| | ƒqXqXWndS(s"Copy each script listed in 'self.scripts'; if it's marked as a Python script in the Unix way (first line matches 'first_line_re', ie. starts with "\#!" and contains "python"), then adjust the first line to refer to the current Python interpreter as we copy. t sysconfigisnot copying %s (up-to-date)trs%s is an empty file (skipping)itscopying and adjusting %s -> %stws#!%s%s tBINDIRs python%s%stVERSIONtEXEtposixschanging mode of %siÿims!changing mode of %s from %o to %oN($t __import__tmkpathR R RtostpathtjointbasenametappendRRRtdebugtopentIOErrortdry_runR treadlinetwarnt first_line_retmatchtgrouptinfotis_python_buildtwriteR tget_config_vart writelinest readlinestcloset copy_filetnametstatRtchmod(Rt _sysconfigRtscripttadjusttoutfileRt first_lineR.t post_interptoutftfiletoldmodetnewmode((s5/sys/lib/python2.7/distutils/command/build_scripts.pyR5sr  $                     (s build-dir=Rsdirectory to "build" (copy) to(sforceRs1forcibly build everything (ignore file timestamps(s executable=R s*specify final destination interpreter path( t__name__t __module__t descriptiont user_optionstboolean_optionsRRRRR(((s5/sys/lib/python2.7/distutils/command/build_scripts.pyRs      (t__doc__t __revision__R"treR9Rtdistutils.coreRtdistutils.dep_utilRtdistutils.utilRt distutilsRtcompileR-R(((s5/sys/lib/python2.7/distutils/command/build_scripts.pyts