qfc@sdZdZddlZddlZddlmZddlmZddlm Z ddl m Z ddl m Z ejd Zd efd YZdS( sRdistutils.command.build_scripts Implements the Distutils 'build_scripts' command.s$Id$iN(tST_MODE(tCommand(tnewer(t convert_path(tlogs^#!.*python[0-9.]*([ ].*)?$t build_scriptscBsSeZdZdddgZdgZd Zd Zd Zd ZdZ 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((s7/usr/lib64/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((s7/usr/lib64/python2.7/distutils/command/build_scripts.pytfinalize_options%s  cCs|jS(N(R (R((s7/usr/lib64/python2.7/distutils/command/build_scripts.pytget_source_files,scCs|js dS|jdS(N(R t copy_scripts(R((s7/usr/lib64/python2.7/distutils/command/build_scripts.pytrun/s c Cstd}|j|jg}x|jD]}d}t|}tjj|jtjj|}|j ||j rt || rt j d|q,nyt|d}Wn&tk r|jsnd}n]X|j}|s |jd|q,ntj|}|r=d}|jdp7d} n|rt jd||j|jst|d } |js| jd |j| fnK| jd tjj|jd d |jd |jdf| f| j|j| jn|r>|jq>q,|r.|jn|j||q,Wtj dkrx|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 %siims!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((s7/usr/lib64/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(((s7/usr/lib64/python2.7/distutils/command/build_scripts.pyRs      (t__doc__t __revision__R"treR9Rtdistutils.coreRtdistutils.dep_utilRtdistutils.utilRt distutilsRtcompileR-R(((s7/usr/lib64/python2.7/distutils/command/build_scripts.pyts