� {fc@s�dZdZddlZddlZddlmZmZddlmZddl m Z dddd �Z d �Z dddd �Z dddd �Zejd kr�ddl mZdadandddd�Zdd�ZdS(s�distutils.spawn Provides the 'spawn()' function, a front-end to various platform- specific functions for launching another program in a sub-process. Also provides the 'find_executable()' to search the path for a given executable name. s$Id$i����N(tDistutilsPlatformErrortDistutilsExecError(tDEBUG(tlogiicCs�t|�}tjdkr1t||d|�nZtjdkrVt||d|�n5tjdkr{t||d|�ntdtj�dS(s�Run another program, specified as a command list 'cmd', in a new process. 'cmd' is just the argument list for the new process, ie. cmd[0] is the program to run and cmd[1:] are the rest of its arguments. There is no way to run a program with a name different from that of its executable. If 'search_path' is true (the default), the system's executable search path will be used to find the program; otherwise, cmd[0] must be the exact path to the executable. If 'dry_run' is true, the command will not actually be run. Raise DistutilsExecError if running the program fails in any way; just return on success. tposixtdry_runtnttos2s1don't know how to spawn programs on platform '%s'N(tlisttostnamet _spawn_posixt _spawn_ntt _spawn_os2R(tcmdt search_pathtverboseR((s'/usr/lib64/python2.7/distutils/spawn.pytspawns cCs>x7t|�D])\}}d|kr d|||tj}qGntj�} | dkry0|dkr~|||�n||||�WnLtk r�} ts�|}ntjjd|| jf�tjd �nXts�|}ntjjd |�tjd �nJxGytj| d�\} } Wn]tk r�} d dl}| j|jkrfqntsu|}ntd || d f�nXtj | �r�ts�|}ntd |tj!| �f�qtj"| �r tj#| �}|dkr�dSts |}ntd||f�qtj$| �r5qqtsD|}ntd|| f�qWdS(NRiR"tMACOSX_DEPLOYMENT_TARGETtt.sF$MACOSX_DEPLOYMENT_TARGET mismatch: now "%s" but "%s" during configuresunable to execute %r: %s is(unable to execute %r for unknown reasonsi����scommand %r failed: %ss"command %r terminated by signal %ds%command %r failed with exit status %ds1unknown error executing %r: termination status %d(%RRRR texecvptexecvtNonetsystplatformt _cfg_targetR#tget_config_vartsplittintt_cfg_target_splittenvirontgetRtdicttexecvpetexecvetforkRRtstderrtwritetstrerrort_exittwaitpidterrnotEINTRRt WIFSIGNALEDtWTERMSIGt WIFEXITEDt WEXITSTATUSt WIFSTOPPED(RRRRRtexec_fntenvtxt cur_targettmy_msgtpidtetstatusR R<t exit_status((s'/usr/lib64/python2.7/distutils/spawn.pyR ts�  ..               cCs�|dkr'tjjdtj�}n|jtj�}tjj|�\}}t j dksotj dkr�|dkr�|d}ntjj |�s�x9|D]1}tjj ||�}tjj |�r�|Sq�WdS|SdS(s�Tries to find 'executable' in the directories listed in 'path'. A string listing directories separated by 'os.pathsep'; defaults to os.environ['PATH']. Returns the complete filename or None if not found. tPATHtwin32Rs.exeN(R)R R1R2tdefpathR.tpathseptpathtsplitextR*R+R tisfileR(RRPtpathstbasetexttptf((s'/usr/lib64/python2.7/distutils/spawn.pyR�s *  (t__doc__t __revision__R*R tdistutils.errorsRRtdistutils.debugRt distutilsRRRR R R+R#R)R,R0R R(((s'/usr/lib64/python2.7/distutils/spawn.pyts     X