Plan 9 from Bell Labs’s /usr/web/sources/contrib/stallion/root/sys/lib/python2.7/distutils/spawn.pyc

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


�`^c@s�dZdZddlZddlZddlmZmZddlmZddl	m
Z
dddd	�Zd
�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(tcmdtsearch_pathtverboseR((s%/sys/lib/python2.7/distutils/spawn.pytspawnscCs>x7t|�D])\}}d|kr
d|||<q
q
W|S(s�Quote 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%/sys/lib/python2.7/distutils/spawn.pyt_nt_quote_args/scCs�|d}t|�}|r1t|�p+|}ntjdj|g|d��|s�tjtj||�}Wn9tk
r�}t	s�|}nt
d||df�nX|dkr�	s�|}nt
d||f�q�dS(NiRiscommand %r failed: %si�s%command %r failed with exit status %d(Rtfind_executableRtinfotjoinR	tspawnvtP_WAITtOSErrorRR(RRRRt
executabletrctexc((s%/sys/lib/python2.7/distutils/spawn.pyR?s$
!		cCs�|d}|r%t|�p|}ntjdj|g|d��|s�tjtj||�}Wn9tk
r�}ts�|}nt	d||df�nX|dkr�s�|}ntj
d||f�t	d||f�q�dS(NiRiscommand %r failed: %si�s%command %r failed with exit status %d(RRRRR	RRRRRtdebug(RRRRRRR ((s%/sys/lib/python2.7/distutils/spawn.pyR
Ws$
!		tdarwin(t	sysconfigcCs^tjdj|��|r dS|d}|r9tjp?tj}d}tjdkrGt	dkr�t
jd�puda	t	r�gt	jd�D]}t
|�^q�aq�nt	rGtjjdt	�}tg|jd�D]}t
|�^q�krd|t	f}	t|	��nttjd|�}|r8tjp>tj}qGntj�}
|
dkry0|dkr~|||�n||||�WnLtk
r�}ts�|}ntjjd||jf�tjd	�nXts�}ntjjd
|�tjd	�nIxFytj|
d�\}
}Wn]tk
r�}
ddl}|
j|jkrfqntsu|}ntd||
df�nXtj |�r�ts�|}ntd
|tj!|�f�qtj"|�r tj#|�}|dkr�Sts
|}ntd||f�qtj$|�r5qqtsD|}ntd||f�qdS(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_exittwaitpidterrnotEINTRRtWIFSIGNALEDtWTERMSIGt	WIFEXITEDtWEXITSTATUSt
WIFSTOPPED(RRRRRtexec_fntenvtxt
cur_targettmy_msgtpidtetstatusR R<texit_status((s%/sys/lib/python2.7/distutils/spawn.pyRts�
..
							cCs�|dkrtjd}n|jtj�}tjj|�\}}tjdksdtj	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	R1R.tpathseptpathtsplitextR*R+R
tisfileR(RROtpathstbasetexttptf((s%/sys/lib/python2.7/distutils/spawn.pyR�s*

(t__doc__t__revision__R*R	tdistutils.errorsRRtdistutils.debugRt	distutilsRRRRR
R+R#R)R,R0RR(((s%/sys/lib/python2.7/distutils/spawn.pyt<module>s 		X

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to webmaster@9p.io.