³ò žl‡Jc @s¹dZdZddkZddkZddkZddklZddklZddk l Z ddk l Z ddk lZdd klZeid ƒZd e fd „ƒYZdS( sRdistutils.command.build_scripts Implements the Distutils 'build_scripts' command.s9$Id: build_scripts.py 37828 2004-11-10 22:23:15Z loewis $iÿÿÿÿN(tST_MODE(t sysconfig(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((s2/sys/lib/python/distutils/command/build_scripts.pytinitialize_options!s     cCs)|iddddƒ|ii|_dS( NtbuildRR RR(s build_scriptss build_dir(sforcesforce(s executables executable(tset_undefined_optionst distributionR (R((s2/sys/lib/python/distutils/command/build_scripts.pytfinalize_options(s  cCs|iS(N(R (R((s2/sys/lib/python/distutils/command/build_scripts.pytget_source_files/scCs |ipdSn|iƒdS(N(R t copy_scripts(R((s2/sys/lib/python/distutils/command/build_scripts.pytrun2s c CsÒ|i|iƒg}x|iD] }d}t|ƒ}tii|itii|ƒƒ}|i|ƒ|i o(t ||ƒ ot i d|ƒq nyt |dƒ}Wn*tj o|ip‚nd}ncX|iƒ}|p|id|ƒq nti|ƒ}|o d}|idƒpd}n|oÍt id||iƒ|ip”t |dƒ} tip| id |i|fƒn=| id tiitid ƒd tid ƒƒ|fƒ| i|iƒƒ| iƒn|o|iƒq+q |iƒ|i||ƒq Wti d joxŒ|D]€} |iot id| ƒqFti!| ƒt"d@} | dBd@} | | jo*t id| | | ƒti#| | ƒqFqFWndS(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. isnot copying %s (up-to-date)trs%s is an empty file (skipping)itscopying and adjusting %s -> %stws#!%s%s tBINDIRtpythontEXEtposixschanging mode of %siÿims!changing mode of %s from %o to %oN($tmkpathR R RtostpathtjointbasenametappendRRRtdebugtopentIOErrortdry_runR treadlinetwarnt first_line_retmatchtgrouptinfoRt python_buildtwriteRtget_config_vart writelinest readlinestcloset copy_filetnametstatRtchmod( RRtscripttadjusttoutfileR t first_lineR-t post_interptoutftfiletoldmodetnewmode((s2/sys/lib/python/distutils/command/build_scripts.pyR8sp  $                  (s build-dir=Rsdirectory to "build" (copy) to(sforceR s1forcibly build everything (ignore file timestamps(s executable=R s*specify final destination interpreter path( t__name__t __module__t descriptiont user_optionstboolean_optionsRRRRR(((s2/sys/lib/python/distutils/command/build_scripts.pyRs      (t__doc__t __revision__tsysR!treR8Rt distutilsRtdistutils.coreRtdistutils.dep_utilRtdistutils.utilRRtcompileR,R(((s2/sys/lib/python/distutils/command/build_scripts.pyss$