Your IP : 172.28.240.42


Current Path : /usr/lib/python2.7/distutils/
Upload File :
Current File : //usr/lib/python2.7/distutils/spawn.pyc


|_c@sdZdZddlZddlZddlmZmZddlmZddddZ	d	Z
dddd
ZddddZej
dkrdd
lmZdadanddddZddZdS(sdistutils.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$iN(tDistutilsPlatformErrortDistutilsExecError(tlogiicCstjdkr%t||d|nZtjdkrJt||d|n5tjdkrot||d|ntdtjdS(sRun 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(tostnamet_spawn_posixt	_spawn_ntt
_spawn_os2R(tcmdtsearch_pathtverboseR((s%/usr/lib/python2.7/distutils/spawn.pytspawnscCs>x7t|D])\}}d|kr
d|||<q
q
W|S(sQuote command-line arguments for DOS/Windows conventions.

    Just wraps every argument which contains blanks in double quotes, and
    returns a new argument list.
    t s"%s"(t	enumerate(targstitarg((s%/usr/lib/python2.7/distutils/spawn.pyt_nt_quote_args+scCs|d}t|}|r1t|p+|}ntjdj|g|d|sytjtj||}Wn.tk
r}t	d|d|dfnX|dkrt	d|d|fqndS(NiRiscommand '%s' failed: %sis'command '%s' failed with exit status %d(
Rtfind_executableRtinfotjoinRtspawnvtP_WAITtOSErrorR(RR
RRt
executabletrctexc((s%/usr/lib/python2.7/distutils/spawn.pyR
;s
!cCs|d}|r%t|p|}ntjdj|g|d|sytjtj||}Wn.tk
r}td|d|dfnX|dkrtj	d|d|ftd|d|fqndS(NiRiscommand '%s' failed: %sis'command '%s' failed with exit status %d(
RRRRRRRRRtdebug(RR
RRRRR((s%/usr/lib/python2.7/distutils/spawn.pyROs
!tdarwin(t	sysconfigc
Cstjdj||r dS|r/tjp5tj}|d|g}tjdkrTtdkrt
jdpudatrgtjdD]}t
|^qaqntrTtjjdt}tg|jdD]}t
|^qkrd|tf}t|nttjd|}	|r8tjp>tj}|j|	qTntj}
|
dkry||WnAtk
r}tjjd|d|jftjd	nXtjjd
|dtjd	nxytj|
d\}
}WnRtk
rY}
ddl}|
j|jkr;qntd|d|
dfnXtj |rtd
|dtj!|fqtj"|rtj#|}|dkrdStd|d|fqtj$|rqqtd|d|fqdS(NRiR tMACOSX_DEPLOYMENT_TARGETtt.sF$MACOSX_DEPLOYMENT_TARGET mismatch: now "%s" but "%s" during configuresunable to execute %s: %s
is(unable to execute %s for unknown reasonsiscommand '%s' failed: %ss$command '%s' terminated by signal %ds'command '%s' failed with exit status %ds3unknown error executing '%s': termination status %d(%RRRRtexecvptexecvtsystplatformt_cfg_targettNoneR!tget_config_vartsplittintt_cfg_target_splittenvirontgetRtdicttexecvpetexecvetappendtforkRtstderrtwritetstrerrort_exittwaitpidterrnotEINTRRtWIFSIGNALEDtWTERMSIGt	WIFEXITEDtWEXITSTATUSt
WIFSTOPPED(RR
RRtexec_fnt	exec_argstxt
cur_targettmy_msgtenvtpidtetstatusRR;texit_status((s%/usr/lib/python2.7/distutils/spawn.pyR	hsp..
	cCs|dkrtjd}n|jtj}tjj|\}}tjdksdtj	dkr}|dkr}|d}ntjj
|sx9|D]1}tjj||}tjj
|r|SqWdS|SdS(sTries 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*RR/R,tpathseptpathtsplitextR'R(RtisfileR(RROtpathstbasetexttptf((s%/usr/lib/python2.7/distutils/spawn.pyRs*

(t__doc__t__revision__R'Rtdistutils.errorsRRt	distutilsRRRR
RR(R!R*R)R.R	R(((s%/usr/lib/python2.7/distutils/spawn.pyt<module>s		I